jQuery动画都是异步的
分类:实例代码
本章节只是来说明一个事实,那句是jQuery动画都是异步的。
所以在使用的时候要特别注意,先看一段代码实例:
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.pipipi.net/" /> <title>前端教程网</title> <style type="text/css"> #antzone { height: 30px; width: 100px; background: #ccc; text-align:center; line-height:30px; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#bt").click(function () { $("#antzone").animate({ "width": "1000px" }, 3000) $("#antzone").text("前端教程网"); }); }) </script> </head> <body> <div id="antzone"></div> <input type="button" id="bt" value="查看效果" /> </body> </html>
在上面的代码中,我们的本意是当动画执行完毕,再将指定的文本写入div元素中。
但是我们发现,文本被立马写入div元素中,这是因为jquery中的动画是异步的。
要想实现我们的设想,可以使用回调函数,代码修改如下:
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.pipipi.net/" /> <title>前端教程网</title> <style type="text/css"> #antzone { height: 30px; width: 100px; background: #ccc; text-align:center; line-height:30px; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#bt").click(function () { $("#antzone").animate({ "width": "1000px" }, 3000, function () { $("#antzone").text("前端教程网"); }) }); }) </script> </head> <body> <div id="antzone"></div> <input type="button" id="bt" value="查看效果" /> </body> </html>
一线大厂高级前端编写,前端初中阶面试题,帮助初学者应聘,需要联系微信:javadudu