在 jQuery 中,我们可以使用 is() 方法来判断元素是否正处于动画状态。如果元素不处于动画状态,则添加新的动画;如果元素正处于动画状态,则不添加新的动画。
语法:
if(!$().is(":animated"))
{
//如果元素不处于动画状态,则添加新的动画
}
举例:
<!DOCTYPE html> <html> <head> <Meta charset="utf-8" /> <title></title> <style type="text/css"> figure { position:relative; /*设置相对定位属性,以便定位子元素*/ width:240px; height:200px; overflow: hidden; } img { width:240px; height:200px; } figcaption { position:absolute; left:0; bottom:-30px; width:100%; height:30px; line-height:30px; text-align:center; font-family:"微软雅黑"; background-color:rgba(0,0.6); color:white; } </style> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function () { $("figure").hover(function () { if (!$(">figcaption",this).is(":animated")) { $(">figcaption",this).animate({ "bottom": "0px" },200); } },function () { if (!$(">figcaption",this).animate({ "bottom": "-30px" },200); } }) }) </script> </head> <body> <figure> <img src="img/ciri.png" alt=""> <figcaption> 《巫师3》之希里</figcaption> </figure> </body> </html>默认情况下,预览效果如图 1 所示。 当鼠标指针移到图片上时,预览效果如图 2 所示。
在这个例子中,
$(">figcaption",this)
表示选取当前元素下面的子元素 figcaption,它其实可以等价于$("figure>figcaption")
。这种写法是 jQuery 的高级技巧,它其实借助了$()
方法的第 2 个参数,当然我们之后会详细介绍。此外,在实际开发中,is(":animated") 比 stop() 方法更加容易理解,也更加常用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。