jQuery : slideDown() , slideUp() and stop()

♀尐吖头ヾ 提交于 2019-12-13 04:27:31

问题


I have a menu strip . I planned to :

  1. slideDown() a submenu ( originally display: none DIV ) when I mouse over the menu strip
  2. hide the submenu by slideUp when mouse out.

Here is the codes:

<div id="main_menu" onmouseover="$('#submenu').stop(true,false).slideDown();" onmouseout="$('#submenu').stop(true,false).slideUp();">Main Menu</div>
<div id="submenu" style="display: none">Some submenu contents here</div>

What I try to achieve is, when I mouseover submenu,the submenu holds and stop the mouse out ( the slideUp() animation. How can I achieve it ?

Note: given that the main_menu and sub_menu did not overlap.

UPDATE: here is the the jsFiddle


回答1:


An easy way you can do is adding a parent dom, and binding the mouse event to it.

html

<div id="menu">
    <div id="main_menu">Main Menu</div>
    <div id="submenu" style="display: none">Some submenu contents here</div>
</div>

js

$('#menu').hover(function () {
    $('#submenu').stop(true, false).slideDown();
},

function () {
    $('#submenu').stop(true, false).slideUp();
});

here is jsfiddle demo. http://jsfiddle.net/vyDVd/

update

If you don't want to adding a parent dom, you can try putting submenu into main_menu as a child menu.

I update your jsfiddle demo here http://jsfiddle.net/9KfYr/2/

I add 2 css attributes to #submenu to keep UI unchange.

position:absolute;
top:30px;

And here, I suggest use .hover() provided by jQuery.




回答2:


Actually, I was able to achive this using pure css:

.header-submenu-item {
	display:none;
}
.header-parent-link:hover + .header-submenu-item,
.header-submenu-item:hover {
	display:block;
}
<div class="header-parent-link">Item 1</div>
  <div class="header-submenu-item"></div><!-- Empty submenu -->
<div class="header-parent-link">Item 2</div>
  <div class="header-submenu-item">
    <a href="#">Child Item</a>
    <a href="#">Child Item</a>
    <a href="#">Child Item</a>
  </div>

It doesn't include slideDown() effect, but is very simple. I guess, slidedown can be achieved using other css effects.



来源:https://stackoverflow.com/questions/14472253/jquery-slidedown-slideup-and-stop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!