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 が 2 つ後に非表示になることです。秒。
これは事件です。マウスが黄色の div から出た直後に黒い div の上に移動した場合、マウスが黒い div 上にある限り、黒い div は隠れません。これも起こっています。
次のステップを説明するのは少し難しいですが、試してみます。マウスが黄色の div の上に移動し、黒い div が出てきたら、マウスを黒い div の上に移動し、2 秒以内にマウスがそこから移動した場合 (黒い div)、アニメーション全体混乱します。その動作は逆です。しかし、マウスが 2 秒以上黒の div に置かれたままになっている場合、それを外に出すと、スクリプト全体が正常に実行されます。
これは、よりよく説明するためのリンクです。http://jsfiddle.net/HAQyK/381/