基本上我通過使用slideUp和slideDown函數創建了一個帶jquery的下拉菜單。一切都運行良好,直到我認爲如果我繼續通過列表懸停鼠標,子按鈕的高度不會停止。我們可以看到,邊界左擴展。任何方式來避免這種情況?jquery下拉無限高度(slideUp和slideDown)
我創建了一個小提琴,這樣你們可以知道我在說什麼http://jsfiddle.net/WGm8q/
反正這裏的代碼:
JS
$('.button').hover(
function() {
$('.sub', this).stop().slideDown(100);
},
function() {
$('.sub', this).stop().slideUp(100);
}
);
CSS
.menu {
width: 850px;
}
.button .main {
padding-bottom: 5px;
cursor: pointer;
}
.button .sub {
display: none;
margin-left: 10px;
padding: 10px 0 10px 0;
border-left: 1px solid #CCC;
}
.button .sub p {
background-color: #FFF;
margin: 0;
padding-left: 5px;
}
HTML
<div class="menu">
<div class="button">
<div class="main">Menu 1</div>
<div class="sub">
<p>Submenu 1</p>
<p>Submenu 1</p>
<p>Submenu 1</p>
<p>Submenu 1</p>
<p>Submenu 1</p>
<p>Submenu 1</p>
<p>Submenu 1</p>
</div>
</div>
</div>
它工作。但是,這種方式我沒有延長線。沒有辦法繞過它? – coldpumpkin
填充是你的問題,解決這個問題的方法是在你的菜單中添加一個固定的高度(但有它自己的問題),或者可能在另一個沒有高度但有邊框和填充的div中「包裝」你的子菜單(沒有測試它...) –
另一種可能是最好的解決方案是添加填充到您的最後或第一個菜單項...類似這樣http://jsfiddle.net/THWhZ/ –