HTML 代码:
<div id="slick-slidetoggle">wxyz</div>
<div id="slickbox" >abcd</div>
JavaScript:
var hoverVariable=false;
var hoverVariable2=false;
$('#slickbox').hide();
$('#slick-slidetoggle').mouseover(function() {
hoverVariable2=true;
$('#slickbox').slideToggle(600);
return false;
})
$('#slick-slidetoggle').mouseleave(function() {
hoverVariable2=false;
setTimeout(function (){
if(!hoverVariable && !hoverVariable2){
$('#slickbox').slideToggle(600);
return false;}
}, 1000);
})
$('#slickbox').mouseleave(function() {
hoverVariable=false;
setTimeout(function (){
if(!hoverVariable && !hoverVariable2){
$('#slickbox').slideToggle(600);
return false;}
return false;
}, 1000);
})
$('#slickbox').mouseover(function() {
hoverVariable2=false;
hoverVariable=true;
})
CSS 代码:
#slickbox {
background: black;
width:100px;
height: 135px;
display: none;
cursor:pointer;
color:white;
}
#slick-slidetoggle{
background: yellow;
width:100px;
height: 135px;
cursor:pointer;
color:black;
}
现在所需的行为是,当鼠标滑过黄色 div("wxyz") 黑色 div("abcd") 应该向下滑动,如果鼠标移出黄色而不移动到黑色 div,黑色 div 应该在两个之后隐藏秒。
这正在发生。如果鼠标移出黄色 div 后立即移到黑色 div 上,只要鼠标在黑色 div 上,黑色 div 就不会隐藏。这也在发生。
接下来的步骤有点难以解释,但我会尝试,当鼠标移到黄色 div 并且黑色 div 出来时,鼠标移到黑色 div 上,如果它移出它(黑色 div),则在两秒钟内整个动画失控了。它的行为是相反的。但是,如果鼠标在黑色 div 上停留超过两秒钟,然后将其移出,则整个脚本运行良好。
这是更好解释的链接。http://jsfiddle.net/HAQyK/381/