Jquery 动画停止显示中存在问题隐藏在菜单中
问题是,我不明白为什么动画子菜单显示不起作用。 当我注释掉“.stop()”和“.animate()”并取消注释“.css()”行时,我大致得到了所需的内容。我不明白为什么动画和停止都不起作用 我的js部分:Jquery 动画停止显示中存在问题隐藏在菜单中,jquery,jquery-animate,Jquery,Jquery Animate,问题是,我不明白为什么动画子菜单显示不起作用。 当我注释掉“.stop()”和“.animate()”并取消注释“.css()”行时,我大致得到了所需的内容。我不明白为什么动画和停止都不起作用 我的js部分: function sub_menu_disp(a){ a.children('div') .stop() .animate({'display':'block'},'slow'); //.css({'display':
function sub_menu_disp(a){
a.children('div')
.stop()
.animate({'display':'block'},'slow');
//.css({'display':'block'});
};
function sub_menu_hide(a){
a.children('div')
.stop()
.animate({'display':'none'},'slow');
//.css({'display':'none'});
};
$(document).ready(function(e){
$('#one,#two')
.children('div')
.hide()
.css({'overflow':'hidden'});
$('#one,#two').bind('mouseover',function(){
sub_menu_disp($(this));
});
$('#one,#two').bind('mouseout',function(){
sub_menu_hide($(this));
});
});
我的html部分:
<div id='one'>
<p>level 1</p>
<div>
<div>sublevel 1a</div>
<div>sublevel 1b</div>
<div>sublevel 1d</div>
</div>
</div>
<hr />
<div id='two'>
<h5>level 2</h5>
<div>
<div><a href='javascript:alert("hello world");'>js alert</a></div>
<div><a href='http://facebook.com'>facebook </a></div>
<div><a href='http://twitter.com'>twitter </a></div>
<div><a href='http://google.com'>google </a></div>
</div>
</div>
一级
次级1a
次级1b
次级1d
二级
我在这里保留了我的完整示例:
提前感谢。我认为
动画
仅适用于数字css属性。您可以使用show('slow')
和hide('slow')
从最终用户的角度来看——悬停是个坏主意:你想给访问者留下深刻印象的意图可能会变成“一种不稳定的”体验
使用单击
我可以向你推荐这样的吗
如果您仍想使用“悬停”功能…
只需更改第2行:
$('.el>*').mouseenter(function() {
您是否考虑过使用现有的手风琴菜单插件?有几十个这样的插件。@mu他真的需要一个完整的插件吗?@roXon:如果它是基于悬停的,并且两个(当前)答案都不适用于悬停,那么很难让行为正确。既然已经有几个可用的插件可供选择,为什么还要重新发明轮子呢?@mu——我真的不需要一个完整的插件。我更喜欢一个小房间,你知道我对“重新发明轮子”的看法吗。如果不是:“有时改造车轮……使车轮更圆”:D;)您可能希望使用
。鼠标悬停而不是鼠标悬停/mouseover
,当您将鼠标悬停在内部
上时,鼠标悬停会立即启动。但如果您将鼠标上下移动的速度快于'slow'
,则会看到跳跃。我不是想给你们一个难堪的时刻,只是基于悬停的手风琴很难正确演奏。@mu是的,我理解。我想最好避免使用基于悬停的UI,或者使用经过战斗测试的插件,而不是使用自己的插件。+1是一个很好的答案,并有助于你的“接受”评论。thx@roXon--是的,我明白这一点。我已经添加了一个选项,可以在单击和悬停之间进行选择。我个人选择点击,但有人告诉我更喜欢悬停…很高兴它能起作用。您也可以使用上面编辑的mouseenter@maan81@maan81你应该始终接受解决问题的答案。请看报纸。很抱歉耽搁了。我在悬停时有点小问题。当我从主菜单移到子菜单时,子菜单将隐藏。我想知道,只要指针也在子菜单上,我是否可以通过不隐藏子菜单来让它变得更好。
$('.cont').hide();
$('.el>*').click(function() {
var d = $(this).next('.cont');
check = (d.is(':visible')) ? d.slideUp() : ($('.cont').slideUp()) (d.slideDown());
});
$('.el>*').mouseenter(function() {