放置父元素以使其子元素在屏幕上居中

托尔金·奥斯本(Tolkien Osborn)

我正在创建一个可平移和可缩放的UI,该UI要求子对象在屏幕上居中,但是我需要移动父对象以将子对象在屏幕上居中。

我的代码以1x放大倍数工作,但是当我应用css3变换来放大或缩小父代时,我的计算就出错了。

如果将父元素css transform和js mult var的第1个和第4个元素更改为0.5或2,则计算将不可用。

任何帮助将不胜感激,因为我在这几天里一直在拔头发。

JS小提琴

Java脚本

$(function() {

$("#child").click(function(e) {

var mult = 1

$("#parent").css('left',
  (($(window).width() - $("#parent").width()) / 2) +
  ($("#parent").width() * mult) / 2 -
  ($("#child").position().left / mult) -
  ($("#child").width() * mult) / 2
);

$("#parent").css('top',
  (($(window).height() - $("#parent").height()) / 2) +
  ($("#parent").height() * mult) / 2 -
  ($("#child").position().top / mult) -
  ($("#child").height() * mult) / 2
);

})

});

的CSS

.parent {
  position: relative;
}

#child {
  border: 1px solid red;
  position: absolute;
  z-index: 3;
  width: 150px;
  height: 150px;
  top: 300px;
  left: 230px;
  background-color: cornflowerblue;
  color: white
}

#parent {
  position: relative;
  width: 700px;
  height: 900px;
  transform: matrix(1, 0, 0, 1, 0, 0);
  border: 1px solid red;
  background: pink
}

的HTML

<div class="parent">
  <div id="parent">
    <div class="testBox" id="child">CLICK ME</div>
  </div>
</div>
伪尘

好的,我通常不写JS,但是我可以使用它:

$(function() {

  $("#child").click(function(e) {

    var mult = 3

    $("#parent").css('left',
        (($(window).width()-$("#child").width()*mult) / 2) -
        $("#child").position().left +
        (mult-1) * $("#parent").width() / 2
    );

    $("#parent").css('top',
        (($(window).height()-$("#child").height()*mult) / 2) -
        $("#child").position().top +
        (mult-1) * $("#parent").height() / 2
    );
  })
});

以下是我认为可能使您感到困难的事情(他们为我做了):

  1. $("#child").position()给出变换的位置同时$("#child").width()给出变换宽度也就是说,使用您发布的CSS,transform: matrix(2, 0, 0, 2, 0, 0);然后使用$("#child").position().left == 460but $("#child").width() == 150

  2. 设置时,$("#parent").css('left', ... )它是变换之前的左偏移,并且变换围绕中心缩放。也就是说,使用您发布的CSS,但是transform: matrix(1.5, 0, 0, 1.5, 0, 0);如果您想将#parent的左边缘设置为与窗口的左边缘对齐,则必须进行设置,$("#parent").css('left', 175)而不是$("#parent").css('left', 0)最初的预期。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

放置父元素以使其子元素在屏幕上居中

来自分类Dev

对齐固定位置的元素以使其水平居中

来自分类Dev

使用CSS自动拉伸元素以使其适合父容器

来自分类Dev

单击某个元素以使其向前滑动后的元素

来自分类Dev

如何访问多维数组元素以使其相乘

来自分类Dev

如何访问多维数组元素以使其相乘

来自分类Dev

嵌套元素以正确居中

来自分类Dev

如何在屏幕上居中放置父游戏对象?

来自分类Dev

CSS在父元素上扩展子元素

来自分类Dev

如何基于父div居中放置元素?

来自分类Dev

如何遍历父元素及其子元素以及打印元素名称xquery

来自分类Dev

如何让jQuery等到AngularJS渲染输入元素以使其专注于它之后?

来自分类Dev

无法拉伸两个元素以使其占据页面的整个宽度

来自分类Dev

在HTML5中,如何对齐多个元素以使其出现在列表定义的同一行上?

来自分类Dev

如何使用溢出自动获取此子元素以显示父元素何时隐藏溢出?

来自分类Dev

是否可以使用父元素的父元素隐藏子元素?

来自分类Dev

使父元素“调整大小”,使其等于子元素中最大的元素的宽度(响应开关)

来自分类Dev

子div自己的自动宽度以使其在父div中居中

来自分类Dev

使子绝对元素居中对齐,且宽度大于父宽度

来自分类Dev

如何定位一个元素以使用屏幕的剩余空间而不溢出它 [TailwindCSS]

来自分类Dev

从State保存元素以使用useRef

来自分类Dev

滚动元素以锚定屏幕高度的 75%

来自分类Dev

使文本居中并缩小元素以适合内联块显示的元素

来自分类Dev

如何将子元素重叠在父元素上

来自分类Dev

在React上单击父元素时如何触发子元素?

来自分类Dev

Slidetoggle 在父元素的子元素上无法正常工作

来自分类Dev

屏幕或父屏幕上的居中表格

来自分类Dev

子元素脱离父元素

来自分类Dev

选择父元素的子元素

Related 相关文章

  1. 1

    放置父元素以使其子元素在屏幕上居中

  2. 2

    对齐固定位置的元素以使其水平居中

  3. 3

    使用CSS自动拉伸元素以使其适合父容器

  4. 4

    单击某个元素以使其向前滑动后的元素

  5. 5

    如何访问多维数组元素以使其相乘

  6. 6

    如何访问多维数组元素以使其相乘

  7. 7

    嵌套元素以正确居中

  8. 8

    如何在屏幕上居中放置父游戏对象?

  9. 9

    CSS在父元素上扩展子元素

  10. 10

    如何基于父div居中放置元素?

  11. 11

    如何遍历父元素及其子元素以及打印元素名称xquery

  12. 12

    如何让jQuery等到AngularJS渲染输入元素以使其专注于它之后?

  13. 13

    无法拉伸两个元素以使其占据页面的整个宽度

  14. 14

    在HTML5中,如何对齐多个元素以使其出现在列表定义的同一行上?

  15. 15

    如何使用溢出自动获取此子元素以显示父元素何时隐藏溢出?

  16. 16

    是否可以使用父元素的父元素隐藏子元素?

  17. 17

    使父元素“调整大小”,使其等于子元素中最大的元素的宽度(响应开关)

  18. 18

    子div自己的自动宽度以使其在父div中居中

  19. 19

    使子绝对元素居中对齐,且宽度大于父宽度

  20. 20

    如何定位一个元素以使用屏幕的剩余空间而不溢出它 [TailwindCSS]

  21. 21

    从State保存元素以使用useRef

  22. 22

    滚动元素以锚定屏幕高度的 75%

  23. 23

    使文本居中并缩小元素以适合内联块显示的元素

  24. 24

    如何将子元素重叠在父元素上

  25. 25

    在React上单击父元素时如何触发子元素?

  26. 26

    Slidetoggle 在父元素的子元素上无法正常工作

  27. 27

    屏幕或父屏幕上的居中表格

  28. 28

    子元素脱离父元素

  29. 29

    选择父元素的子元素

热门标签

归档