打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jQuery插件之animate动画:遭遇display属性切换显隐无效后应该如何办?
jQueryanimatedisplay,显隐,元素,无效


关于jQueryanimate动画效果想要直接设置元素的display为none或者block来说确实无效的,这个我也是在一个项目开发中遇到的。我项目中想要一个弹窗且背景遮罩效果。我用jQuery这样写道:


$(".pop,.masking").animate({"display":"block"},500);


没有任何效果,且压根就没有执行show操作。开始还怀疑是格式写错了,接着换了一个:


$(".pop,.marsking").animate({display:"block"},500);


后面依然无效。

经过对其jQuery库内animate()方法的进步一了解:

http://api.jquery.com/animate/

得知这样一个情况:


Note: Unlike shorthand animation methods such as .slideDown() and .fadeIn(), the .animate() method does not make hidden elements visible as part of the effect. For example, given $( "someElement" ).hide().animate({height: "20px"}, 500), the animation will run, but the element will remain hidden.


不难看出animate()方法对于元素的hide()和show()是无效的,如果我们真想采用animate()方法进行动画显隐,可以无偿利用opacity属性(透明度)来实现。

元素显示也就是元素的opacity不透明属性为1,元素隐藏也就是元素的opacity不透明属性为0。

所以我们可以这样写:


//显示元素$(".pop,.marsking").show();$(".pop,.marsking").animate({opacity:1},500);//隐藏元素$(".pop,.marsking").animate({opacity:0},500);$(".pop,.marsking").hide();


这样写您如果都觉得很麻烦,其实我们可以使用jQuery固有的几个渐入渐出的方法 fadeIn()fadeOut()


//显示弹窗元素$(".pop,.marsking").fadeIn();//隐藏弹窗元素$(".pop,.marsking").fadeOut();


倘若朋友你有更好的思路和方案也不妨提供出来,谢谢您的无私奉献。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jQuery 效果
learning jQuery 学习笔记八(+jQuery 1.4.1 API)
ext
jQuery框架学习第七天:jQuery动画–jQuery让页面动起来! - 学IT网 x...
写给设计人的10个jQuery特效(表格树插件)
js_animation_B块和块碰撞及封装函数动画
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服