关于jQuery animate()的问题

如图,我想让a,b,c三个小圆圈各自沿着黑线同时从A处出发,同时到达B处,再同时到达C处,最后同时到达D处,中间不要有停顿,应该怎么改啊<script>window.on... 如图,我想让a,b,c三个小圆圈各自沿着黑线同时从A处出发,同时到达B处,再同时到达C处,最后同时到达D处,中间不要有停顿,应该怎么改啊

<script> window.onload=function sssss(){ $("#drawing1").css("top", "35px"); $("#drawing1").css("left", "26px"); $("#drawing2").css("top", "35px"); $("#drawing2").css("left", "52px"); $("#drawing3").css("top", "35px"); $("#drawing3").css("left", "78px"); $("#drawing1").animate({ top: '167px' }, 2000); $("#drawing1").animate({ left: '1147px' }, 3000); $("#drawing1").animate({ top: '35px' }, 2000); $("#drawing2").animate({ top: '142px' }, 2000); $("#drawing2").animate({ left: '1121px' }, 3000); $("#drawing2").animate({ top: '35px' }, 2000); $("#drawing3").animate({ top: '117px' }, 2000); $("#drawing3").animate({ left: '1095px' }, 3000); $("#drawing3").animate({ top: '35px' }, 2000, sssss); }</script> <div style="background:url(Images/test.png);height:200px;width:1180px;left:100px;position:absolute;"> <div id="drawing1" style="background:url(Images/drawing1.png);position:absolute;width:7px;height:7px;left:26px;top:35px;"></div> <div id="drawing2" style="background:url(Images/drawing2.png);position:absolute;width:7px;height:7px;left:52px;top:35px;"></div> <div id="drawing3" style="background:url(Images/drawing3.png);position:absolute;width:7px;height:7px;left:78px;top:35px;"></div></div>

完整代码链接:http://pan.baidu.com/s/1kT5usOR
展开
 我来答
jicemoon
2015-08-31 · TA获得超过772个赞
知道小有建树答主
回答量:622
采纳率:66%
帮助的人:674万
展开全部

把时间和动画分割一下, 或许就可以做到你要的效果, 代码如下

window.onload=sssss;
function sssss(){
    $("#drawing1").css({top:"35px",left:"26px"});
    $("#drawing2").css({top:"35px",left:"52px"});
    $("#drawing3").css({top:"35px",left:"78px"});
    var t1 = 1500,t2=500,t3=3000,t4=500,t5=1500;
    $("#drawing1")
            .animate({ top: '167px'}, t1)
            .animate({left:"78px"},t2)
            .animate({ left: '1095px' }, t3)
            .animate({ left: '1147px' }, t4)
            .animate({ top: '35px' }, t5);
    $("#drawing2")
            .animate({ top: '142px'}, t1)
            .animate({left:"78px"},t2)
            .animate({ left: '1095px' }, t3)
            .animate({ left: '1121px' }, t4)
            .animate({ top: '35px' }, t5);
    $("#drawing3")
            .animate({ top: '117px' }, t1+t2)
            .animate({ left: '1095px' }, t3)
            .animate({ top: '35px' }, t4+t5, sssss);
}

这里只贴出了js代码, 其他代码没有变, 你可以测试一下效果

追问
中间还是有停顿一下,能不能让它中间不要有停顿,连贯一点啊
追答

那个应该不是停顿, 只是速度比较慢吧, 因为JQuery的动画是有缓动的, 每段动画开始和结束比较慢, 中间比较看, 你可以加一个参数, 做成直线型的试一下, 加个"linear"

    $("#drawing3")
            .animate({ top: '117px' }, t1+t2,"linear")
            .animate({ left: '1095px' }, t3,"linear")
            .animate({ top: '35px' }, t4+t5,"linear");
    $("#drawing2")
            .animate({ top: '142px'}, t1,"linear")
            .animate({left:"78px"},t2,"linear")
            .animate({ left: '1095px' }, t3,"linear")
            .animate({ left: '1121px' }, t4,"linear")
            .animate({ top: '35px' }, t5,"linear");
    $("#drawing1")
            .animate({ top: '167px'}, t1,"linear")
            .animate({left:"78px"},t2,"linear")
            .animate({ left: '1095px' }, t3,"linear")
            .animate({ left: '1147px' }, t4,"linear")
            .animate({ top: '35px' }, t5,"linear", sssss);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式