如何为此功能添加3秒延迟

时间:2012-02-07 16:42:34

标签: javascript jquery css css3

我的这段代码的目标是创建一个在页面加载后3秒吹走的树叶效果,但目前我无法创建延迟。也许是因为代码格式。我让我快速jsfiddle来展示我到目前为止所拥有的东西。

http://jsfiddle.net/vXpDk/

所以我的问题是如何创建一个函数的延迟,以便它不会开始旋转和滑动3秒......如果可以创建对角线路径而不是水平和垂直。

这是来自jsFiddle的代码:

var $elie = $("#leaf1"), degree = 0, timer; 

rotate();

function rotate() {
    $elie.delay(2000)
        .css({ WebkitTransform: 'rotate(' + degree + 'deg)'})
        .animate({ "left": "+=800px" }, 2000)
        .fadeOut(100);  
    $elie.delay(2000)
        .css({ '-moz-transform': 'rotate(' + degree + 'deg)'})
        .animate({ "left": "+=800px" }, 2000)
        .fadeOut(100);   

    timer = setTimeout(function() {
        ++degree; 
        rotate();
    },0);
}

1 个答案:

答案 0 :(得分:1)

喜欢这个? http://jsfiddle.net/L69Ud/

    var $elie = $("#leaf1"), degree = 0; 

    $elie.animate({ "left": "+=800px" }, 5000).fadeOut(100); 
    setTimeout(rotate, 3000);

    function rotate() {
    $elie.css({ WebkitTransform: 'rotate(' + degree + 'deg)'});
    $elie.css({ '-moz-transform': 'rotate(' + degree + 'deg)'});   

    setTimeout(function() {
            ++degree; rotate();
            }, 0);
    }
  

如果可以创建对角线路径而不是   水平和垂直。

同时为http://jsfiddle.net/L69Ud/1/

动画lefttop

这里唯一的修改是

$elie.animate({ left: "+=500px", top: "+=500px" }, 5000).fadeOut(100); 

How would you code this so that the div does not move at all for 3 seconds then begins to rotate and slide at the same time? http://jsfiddle.net/L69Ud/3/

    var $elie = $("#leaf1"), degree = 0; 

    setTimeout(function() {
       $elie.animate({ left: "+=500px", top: "+=500px" }, 5000).fadeOut(100); 
       rotate();
    }, 3000);

    function rotate() {
        $elie.css({ WebkitTransform: 'rotate(' + degree + 'deg)'});
        $elie.css({ '-moz-transform': 'rotate(' + degree + 'deg)'});   

        setTimeout(function() {
                ++degree; rotate();
                }, 0);
    }