我一直停留試圖找出如何編寫菜單就像你看到的Playstation網站上的內容:http://us.playstation.com/使用JQuery 100%(頁面)下拉菜單/抽屜菜單?
編輯:小提琴:http://jsfiddle.net/jjcarlson/7q64A/
到目前爲止,我有一些問題。首先是我無法創建100%寬度,因爲我假設父母/子女關係。
我的第二個問題是,我的超時適用於所有類元素,而不僅僅是當前懸停的元素。換句話說,如果所有的元素都滑落了,而且一個元素已經滑過,它們都會保持打開狀態,直到它們都沒有被徘徊1.5秒。我承認我無法提出解決方案可能是由於我對該語言的有限經驗。下面是CSS:
.accordion-container {
width: 90%;
padding-bottom: 5px;
margin: 20px 0 0 20px;
}
.accordion {
width: 40%;
padding: 20px;
margin: 0 15px 35px;
position: relative;
float: left;
display: inline-block;
}
.accordion-question {
margin: 0;
padding: 0 0 5px 20px;
display: inline-block;
color: #06F;
background-color: #9F0;
cursor: pointer;
}
.accordion-answer-container {
padding: 0 20px;
overflow: hidden;
color: #999;
background: #F00;
}
.accordion-answer {
margin: 0;
padding: 0;
color: #0C0;
}
然後,JQuery的:
$(document).ready(function() {
var menu = $('.accordion-answer')
var timeout = 0;
var hovering = false;
menu.hide();
$('.accordion-question').hover(function() {
hovering = true;
// Open the menu
$(this).closest('.accordion').find('.accordion-answer')
.stop(true, true)
.delay(400).slideDown(600);
if (timeout > 0) {
clearTimeout(timeout);
}
})
.on("mouseleave", function() {
resetHover();
});
$('.accordion-answer').hover(function() {
hovering = true;
startTimeout();
})
.on("mouseleave", function() {
resetHover();
});
function startTimeout() {
timeout = setTimeout(function() {
closeMenu();
}, 1500);
};
function closeMenu() {
if (!hovering) {
$('.accordion-answer').stop(true, true).slideUp(400);
}
};
function resetHover() {
hovering = false;
startTimeout();
};
});
最後,HTML:
<div class="accordion-container">
<div class="accordion">
<div class="accordion-question">
<h2>Is this a question?</h2>
</div>
<div class="accordion-answer-container">
<div class="accordion-answer">
<p>To be honest, I am not sure</p>
<ul>
<li>List item one</li>
<li>List item two</li>
</ul>
<p>That is all.</p>
</div>
</div>
</div><!-- /accordion -->
<div class="accordion" id="testanchor">
<div class="accordion-question">
<h2>What would be a good second question?</h2>
</div>
<div class="accordion-answer-container">
<div class="accordion-answer">
<p>I don’t know, man!</p>
<p>That is all.</p>
</div>
</div>
</div><!-- /accordion -->
</div>
造型是最小的,現在(對不起)因爲我只是試圖解決這個問題。感謝您提供任何幫助。
做一個小提琴:http://jsfiddle.net/ –
小提琴製造。請參閱編輯。 – jjcarlson