Jquery 如何延迟j查询旋转动画
我有一个div元素,使用以下代码前后旋转一定次数: 插件:Jquery 如何延迟j查询旋转动画,jquery,rotation,delay,Jquery,Rotation,Delay,我有一个div元素,使用以下代码前后旋转一定次数: 插件: <script type="text/javascript" src="http://jqueryrotate.googlecode.com/svn/trunk/jQueryRotate.js"></script> 我真正想要的是div元素在5秒延迟后开始漫游。我尝试将通常的.delay(5000)添加到上述代码中,如下所示,但似乎没有什么区别,页面加载后代码仍会立即执行: if(times > 0){
<script type="text/javascript" src="http://jqueryrotate.googlecode.com/svn/trunk/jQueryRotate.js"></script>
我真正想要的是div元素在5秒延迟后开始漫游。我尝试将通常的.delay(5000)添加到上述代码中,如下所示,但似乎没有什么区别,页面加载后代码仍会立即执行:
if(times > 0){
$("#pencil").delay(5000).rotate({
angle: 0,
animateTo: 2,
duration: 200,
callback: rotationBack
});
有人知道为什么在这种情况下.delay(5000)不起作用吗 仅适用于队列中的对象。如果该插件不起作用,则意味着他们没有以将动画添加到jQuery队列的方式实现动画。不过,使用setTimeout
添加此功能非常简单
if (times > 0) {
setTimeout(function () {
$("#pencil").rotate({
angle: 0,
animateTo: 2,
duration: 200,
callback: rotationBack
});
}, 5000);
要将延迟添加到第一次旋转,请更改代码
旋转(10)代码>
到
延迟
的原因不适用于您,因为最初动画队列中没有可延迟的内容
要解决此问题,您需要排队等待。旋转呼叫:
$('#pencil').delay(4000).queue(function(){
$(this).rotate({
angle: 0,
animateTo: 2,
duration: 200,
callback: rotationBack
});
});
请看一个例子
还要看一看这个问题。.rotate()
不在jQuery库中。您正在使用插件吗?抱歉,是的,用于此的插件是:我现在已将此添加到问题中,该插件可能不使用jQuery FX队列,因此delay()将不起作用。感谢DGS-此功能有效,但它会将每个单独的旋转周期延迟5秒。所以div来回旋转一次,然后等待5秒,然后再次来回旋转,然后等待5秒…等等。理想情况下,在它等待5秒钟后,再前后旋转10次,每次旋转之间没有延迟。这有意义吗?
setTimeout(function(){
rotation(10);
},5000);
$('#pencil').delay(4000).queue(function(){
$(this).rotate({
angle: 0,
animateTo: 2,
duration: 200,
callback: rotationBack
});
});