那么,在以下几个方面有什么不同:
A) (为我工作)
... .animate({opacity: "show", marginTop: "25"}); ...
..。
B (不适合我)
... .animate({opacity: "1", marginTop: "25"}); ...
例如http://jsbin.com/iquwuc/6/edit#preview
发布于 2012-02-06 10:42:02
当您调用hide()
时,这大致等同于.css('display', 'none')
,因此稍后将不透明度更改为1会改变隐藏元素的不透明度。这就是为什么show()
工作-因为它再次使元素块。
发布于 2012-02-06 10:49:57
这是因为你是显示和隐藏,而不是动画的不透明度。(有点明显: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,然后再隐藏起来.
发布于 2012-02-06 10:46:27
在css文件或内联中。将id或类设置为
内联- <div id="myid" style="opacity:0;"></div>
在css中
#myid { opacity: 0; }
.myclass {opacity: 0; }
那样的话,当从jQuery调用动画不透明度时,它将发挥其他明智的作用,您只需要调用一个已经处于1不透明度的动画。
https://stackoverflow.com/questions/9158796
复制相似问题