gpt4 book ai didi

jquery - 使摆动(或弹跳)效果变慢

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:22 25 4
gpt4 key购买 nike

我想这适用于摆动或弹跳。 another post 中有关如何使物体摆动的示例,发布此代码的位置:http://jsfiddle.net/gVCWE/149/

如何让摆动减慢直至停止?

.box{
width:50px; height:50px;
background: yellow;
border: 1px solid black;
margin:100px;
position: relative;
float: left;
-moz-animation: 3s ease 0s normal none infinite swing;
-moz-transform-origin: center top;
-webkit-animation:swing 3s infinite ease-in-out;
-webkit-transform-origin:top;
}

@-moz-keyframes swing{
0%{-moz-transform:rotate(-3deg)}
50%{-moz-transform:rotate(3deg)}
100%{-moz-transform:rotate(-3deg)}
}
@-webkit-keyframes swing{
0%{-webkit-transform:rotate(-3deg)}
50%{-webkit-transform:rotate(3deg)}
100%{-webkit-transform:rotate(-3deg)}
}

我也想做其他的“惯性效应”。如果有必要,我不介意使用 JavaScript 或 JQuery。我觉得单独使用 CSS 或关键帧不足以完成我想做的事情。

我可以使用 setInterval 并执行如下操作:

function prepareAnimation()
{
setInterval(slowAnimation, 200)
}

function slowAnimation()
{
speed=$(".box").getSpeed(); // how would I write getSpeed?
if(speed<=0) return;
speed = speed - .1;
$(".box").setSpeed(speed); // how would I write setSpeed (degree would be set in here too)?
}

我不知道通过脚本更改动画属性的最佳方法。尤其是当涉及到在动画中间更改持续时间时,我不确定这是否可能。谢谢。

最佳答案

http://jsfiddle.net/gVCWE/150/

(function swing() {
var ang = 20,
dAng = 1,
dir = 1,
box = document.getElementById("box");

(function setAng(ang){
box.style.WebkitTransform = 'rotate('+ang+'deg)';
box.style.MozTransform = 'rotate('+ang+'deg)';
dir = -dir;
if (Math.abs(ang) > 0)
setTimeout(setAng, 1000, dir * (Math.abs(ang)-dAng));
})(ang);
})();​

CSS

.box{
width:50px; height:150px;
background: yellow;
border: 1px solid black;
margin:100px;
position: relative;
float: left;
-moz-transition:-moz-transform 1s ease-in-out;
-moz-transform-origin: center top;
-webkit-transition:-webkit-transform 1s ease-in-out;
-webkit-transform-origin:top;
}

您可以通过使 angdir 的初始值为负数来切换初始方向。您可以通过增加dAng 的值使“摆动”速度变慢,但它应该是ang 的一个因素。

关于jquery - 使摆动(或弹跳)效果变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13295143/

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