Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何延迟j查询旋转动画_Jquery_Rotation_Delay - Fatal编程技术网

Jquery 如何延迟j查询旋转动画

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){

我有一个div元素,使用以下代码前后旋转一定次数:

插件:

<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
  });

});