1


让我的导航 div 正确自动隐藏时遇到问题。

我想要发生的是:

默认情况下,我的导航是隐藏的。

当用户单击链接或用户在浏览器窗口底部附近使用鼠标时,导航将出现(向上滑动)。我的导航位于 id 为“tS2”的 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)
 }

});

这是我的 showav 函数,它在文档加载时可以正常工作。但是当我调用 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 回答