[英]Animate opacity hide / show
因此,有什么区别:
A) (为我工作)
... .animate({opacity: "show", marginTop: "25"}); ...
...
B (对我不工作)
... .animate({opacity: "1", marginTop: "25"}); ...
当您调用hide()
,它大致等效于.css('display', 'none')
,因此稍后将不透明度改回1会更改隐藏元素的不透明度。 这就是show()
起作用的原因-因为它再次使元素阻塞。
这是因为您处于显示和隐藏状态,而不是为不透明度设置动画。 (金田明显:P)。
修改后的代码: http : //jsbin.com/iquwuc/11/edit#preview
您可以进行以下修改以使用不透明度设置:
添加以下css:
.sub-menu li#access ul {opacity:0; display:none;}
并将脚本更改为此:
$(document).ready(function(){
$('.sub-menu').hover(function(){
$('.sub-menu li#access ul').show();
$('.sub-menu li#access ul').stop().animate({opacity: 1, marginTop: "25"}, 500);
},
function() {
$('.sub-menu li#access ul').stop().animate({opacity: 0, marginTop: "10"}, 500,function(){
$('.sub-menu li#access ul').hide();
});
});
});
基本上发生的是:
悬停时,您将不透明度0显示在下拉菜单中,然后动画会设置边距和不透明度。 然后将鼠标悬停,将不透明度设置为0,然后再次将其隐藏。
在css文件或内联中。 将ID或类设置为
内联- <div id="myid" style="opacity:0;"></div>
在CSS
#myid { opacity: 0; }
.myclass {opacity: 0; }
这样,当从jQuery调用动画不透明度时,它将以其他方式起作用,您只需要调用已经具有1不透明度的动画即可
我会为此使用dojo书目( http://dojotoolkit.org/reference-guide/dojo/animateProperty.html )。 在DOJO中,您不仅会发现动画功能,而且该框架提供了许多组件来解决各种不同的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.