javascript使用translate定位元素

ilmyapht  于 2023-05-15  发布在  Java
关注(0)|答案(1)|浏览(165)

如何使用translate将元素(例如div)定位或动画到绝对x和y坐标。
我试图用“翻译”来实现这一点,因为它使用GPU来获得更好的动画效果。

but5z9lq

but5z9lq1#

你不需要JS或jQuery来做到这一点。下面是使用translate的简单CSS方式:

.container {
  position: relative;
  display: block;
  width: 100%;
  height: 200px;
  background-color: aliceblue;
}

.element {
  position: absolute;
  width: 50px;
  height: 50px;
  background-color: cadetblue;
  transform: translate(70px, 70px);
}
<div class="container">
  <div class="element"></div>
</div>

如果你想使用JS应用CSS,你可以使用.css()方法来设置transform属性:

$(document).ready(function() {
  var el = $('.element');
  var x = 70;
  var y = 70;
  el.css('transform', 'translate(' + x + 'px, ' + y + 'px)');
});
.container {
  position: relative;
  display: block;
  width: 100%;
  height: 200px;
  background-color: aliceblue;
}

.element {
  position: absolute;
  width: 50px;
  height: 50px;
  background-color: cadetblue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <div class="element"></div>
</div>

对于动画,只需将transition属性添加到元素中:

.element {
  /* set transition effect only for transform property */
  transition: transform 0.3s ease;
}
.container:hover .element {
  /* will move to that position on .container hover */
  transform: translate(100px, 100px);
}

相关问题