扫码关注官方订阅号
想简单的实现一个JS动画无限循环~不过设置了定时器好像没用~~不知道咋整了~求大神帮忙看下~非常感谢~
欢迎选择我的课程,让我们一起见证您的进步~~
写了个sample,替换下jquery引用应该就可以看到效果,在donghua()的回调函数里把位置值重置。animate()写多个值{top:"300px",left:"300px"}css()写多个值{"top":"10px","left":"10px"}
{top:"300px",left:"300px"}
{"top":"10px","left":"10px"}
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> p{width: 30px;height: 30px; background-color: pink;position: absolute;top:0;left:0;} </style> <script src="jquery-1.11.3.min.js"></script> <script type="text/javascript"> var timer=setInterval(donghua,1000); function donghua(){ $("p").animate({top:"300px",left:"300px"},1000,function(){ $("p").css({"top":0,"left":0}); }); } </script> </head> <body> <p></p> </body> </html>
<script> function donghua(){ $("p").animate({ top:150, left:1000 },1000)}; donghua(); var timer=setInterval(donghua,1000); </script>
donghua();执行完后,p元素已经移动到指定位置了,那么下次执行动画就会从 top:150,left:1000的位置开始移动,你说是个什么效果呢~~~
donghua();
没加单位吧?
function donghua(){ var $p = $("p"), startTop = $p.css("top"), startLeft = $p.css("left"); $p.animate({ top:150, left:1000 }, 1000, null, function(){ $p.css({ "top" : startTop, "left" : startLeft }); donghua(); }); } donghua();
这样试试看?
第一次动画后,你的元素没回去。
动画到达指定位置后,你没有设置元素回到指定位置,donghua方法中应该像下面这样在动画结束后让元素回到初始位置
function donghua(){ $("p").animate({ top:150, left:1000 }, 1000, function(){ $("p").css({ "top" :初始top值, "left" : 初始left值, }); }); }
正好之前写过一个类似的动画,你可以参考着看看:效果 demo
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
写了个sample,替换下jquery引用应该就可以看到效果,在donghua()的回调函数里把位置值重置。
animate()写多个值
{top:"300px",left:"300px"}css()写多个值
{"top":"10px","left":"10px"}donghua();执行完后,p元素已经移动到指定位置了,那么下次执行动画就会从 top:150,left:1000的位置开始移动,你说是个什么效果呢~~~没加单位吧?
这样试试看?
第一次动画后,你的元素没回去。
动画到达指定位置后,你没有设置元素回到指定位置,donghua方法中应该像下面这样在动画结束后让元素回到初始位置
正好之前写过一个类似的动画,你可以参考着看看:效果 demo