如何使用translate将元素(例如div)定位或动画到绝对x和y坐标。我试图用“翻译”来实现这一点,因为它使用GPU来获得更好的动画效果。
but5z9lq1#
你不需要JS或jQuery来做到这一点。下面是使用translate的简单CSS方式:
translate
.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属性:
.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); }
1条答案
按热度按时间but5z9lq1#
你不需要JS或jQuery来做到这一点。下面是使用
translate
的简单CSS方式:如果你想使用JS应用CSS,你可以使用
.css()
方法来设置transform
属性:对于动画,只需将transition属性添加到元素中: