gpt4 book ai didi

javascript - 通过使用 -webkit-transform 而不是 -webkit-transition 来利用硬件加速?

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:54 27 4
gpt4 key购买 nike

我想创建一个动画,在每次单击按钮时,对象都会向右移动一定量。

例如,如果对象的初始位置是“left:10px”,并且每 1 个动画循环将其移动 10px,那么在第一次点击后它应该在 20px,在第二次点击后它应该在 30px 等等上。

这是我现在的代码:

JavaScript

document.getElementById( 'move-me' ).addEventListener( 'click', function () {

var move = document.getElementById( 'move' );
move.style.left = ( move.offsetLeft + 10 ) + 'px';

}, false );

HTML

<button id="move-me">Move</button>
<div id="move"></div>

CSS

#move {
background: green;
height: 50px;
left: 0px;
position: absolute;
top: 100px;
transition: left 250ms ease-in-out;
-moz-transition: left 250ms ease-in-out;
-ms-transition: left 250ms ease-in-out;
-o-transition: left 250ms ease-in-out;
-webkit-transition: left 250ms ease-in-out;
width: 50px;
}

此代码使用 CSS3 转换,但它没有使用我的 Android 设备上的 -webkit-transform 硬件加速。我该如何解决?

最佳答案

选择不在-webkit-transform-webkit-transition之间,而是在left-webkit-transform之间

以下是如何使用 3d 加速:

#move {
background: green;
height: 50px;
left: 0px;
position: absolute;
top: 100px;
-moz-transition: -moz-transform 250ms ease-in-out;
-ms-transition: -ms-transform 250ms ease-in-out;
-o-transition: -o-transform 250ms ease-in-out;
-webkit-transition: -webkit-transform 250ms ease-in-out;
transition: transform 250ms ease-in-out;
width: 50px;
}

Javascript:

document.getElementById( 'move' ).addEventListener( 'click', function() {
var move = document.getElementById( 'move' );
var transform = "translate3d("+ (move.offsetLeft+200) + "px, 0, 0)";
move.style.webkitTransform = transform;
move.style.mozTransform = transform;
move.style.msTransform = transform;
move.style.oTransform = transform;
move.style.transform = transform;

}, false );

http://jsfiddle.net/CjQ8H/

关于javascript - 通过使用 -webkit-transform 而不是 -webkit-transition 来利用硬件加速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733406/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com