Jquery .animate,从屏幕外进入div,浮动,离开屏幕,&重复

时间:2013-07-31 23:18:46

标签: jquery jquery-animate css-animations html5-animation

我刚刚开始教自己如何使用jquery函数,通常我可以自己解决问题(当然还有google)。今天我只是出于想法,我发现自己基本上都在圈内,所以我希望有人可以帮助我。

好的,这是我正在使用的页面:https://dl.dropboxusercontent.com/u/60521097/ServZoo/HTML/index.html

基本上,我想做的就是让云div从屏幕左侧进入,向右侧浮动(进入中央元素后面),退出屏幕,&重复。我整天都在摆弄这个问题并且已经到了我不知道哪个方向已经出现的地步了: - /好吧,这里是......

#bg-wrapper {
    max-width:2920px;
    overflow: hidden;
    margin: 0 auto;
    background: url(images/Untitled-3.jpg) left top;
    background-size: 100% 924px;
    background-repeat:no-repeat;
    background-attachment: fixed;
}

#bg-inner {
    width:2305px;
    height: 1080px;
    position: absolute;
    overflow: hidden;   
    margin:0px;
}
#cloudone {
    position:absolute;
    margin-top:5px;
    margin-left:-200px;
    z-index: 1;
    filter:alpha(opacity=80);
  /* CSS3 standard */
        opacity:0.8;
}
#cloudtwo {
    position:absolute;
    margin-top:85px;
    margin-left:-300px;
    z-index: 2;
    filter:alpha(opacity=60);
  /* CSS3 standard */
        opacity:0.6;
}
#cloudthree {
    position:absolute;
    margin-top:65px;
    margin-left:-600px;
    z-index: 4;
    filter:alpha(opacity=70);
  /* CSS3 standard */
        opacity:0.7;
}
#boat {
    margin-top:620px;
    position:absolute;
    margin-right:-2105px;
    z-index: 6;
}

脚本......

$(document).ready(function() {
    setTimeout("cloudone()",10);
    setTimeout("cloudtwo()",13);
    setTimeout("cloudthree()",18);
    setTimeout("boat()",40);
});
function cloudone(){
    $("#cloudone").animate({left:"600px"},5000).animate({right:"600px"}, 5000)
    setTimeout("cloudone()",10000);
}
function cloudtwo(){
    $("#cloudtwo").animate({left:"700px"},7000).animate({right:"700px"}, 6000)
    setTimeout("cloudtwo()",13000);
}
function cloudthree(){
    $("#cloudthree").animate({left:"1000px"},10000).animate({right:"1000px"}, 8000)
    setTimeout("cloudthree()",18000);
}
function boat(){
    $("#boat").animate({right:"2105px"},20000).animate({left:"2105px"}, 20000)
    setTimeout("boat()",40000);
}

2 个答案:

答案 0 :(得分:1)

通过向animate参数添加一个函数,动画完成后将调用该函数。在该功能内,您可以重置云的位置。重置位置后,您可以使用超时重新启动动画,就像您已经完成的那样。

$("#cloudone").animate({left:"600px"},5000,function(){$("#cloudone").css({"left":"0px"});});

答案 1 :(得分:0)

看起来它大部分都在起作用。帆船看起来不错,对吧?我想你想增加所有项目的z-index,以便它们位于页面上的其他所有内容之上。另外,只需将它们全部放在html的顶层。这样,其他图层将不会优先显示在移动图形之上。

<html>
<head>
 ...
</head>
<body>
  <img id="sailboat" />
  ...
</body>
</html>