1


ナビゲーション div を適切に自動非表示にするのに問題があります。

私がしたいことはこれです:

デフォルトでは、ナビゲーションは非表示になっています。

ユーザーがリンクをクリックするか、ユーザーがブラウザ ウィンドウの下部近くにマウスを移動すると、ナビゲーションが表示されます (上にスライドします)。私のナビゲーションは、「tS2」という ID を持つ div にあります。ユーザーがナビゲーション div からマウスを離すと、少し遅れてナビゲーションが非表示 (スライド ダウン) します。

マウス位置スクリプトが正しく機能しています

$(document).mousemove(function(ev){
 var ev = ev || window.event;
 //console.log('Mouse y ='+ev.pageY);
 if(ev.pageY>(_windowHeight-120)){
    console.log('YES triggered show nav!');
    showNav(true,1000)
 }

});

そして、これはドキュメントの読み込み時に正しく機能する私の shownav 関数です。しかし、showNav(true,1000) を呼び出すと、ナビゲーションは 1 秒 (持続時間) かけて徐々に表示されるのではなく、すぐに表示されます。誰でも私のエラーを見つけることができますか?

function showNav(bflag,dur,delay){
if(bflag===true){
    $("#tS2").stop(true,true).animate({
                'bottom':'0'
            }, dur);
}else{
    $("#tS2").stop(true,true).animate({
                'bottom':'-125px'
            }, dur);
}
}

showNav(false,1000);
4

2 に答える 2

1

あなたの説明に基づいて、私はこのフィドルをまとめました

http://jsfiddle.net/zPs4G/3/

それを試してみてください :)

于 2012-04-14T01:11:58.127 に答える
0

多くの詳細を提供しませんでしたが、ナビゲーションに次のようなことをさせたいようです:

$('#tS2').slideToggle('slow', function() {
    // Animation complete.
});

これを console.log の代わりに配置すると、ほとんど完了したと思います。マウス アウト イベントをトリガーするには、対応する if ステートメントが必要なだけですが、その方法は既に知っています。

于 2012-04-14T00:40:01.543 に答える