0

我已经查看了整个网络,但仍然可以做到这一点。我正在使用的 jquery 代码是:

$(document).ready(function(){
// Slide top and bottom bars away in all screens except the lobby
    $("#main_content").ajaxStop(function(){

        if($("#content_text").length){
            }
        else{
            $("#top").slideUp(2000);
            $("#btm").slideUp(2000);
            }
    });


// Slide bars back in when the mouse is moved and then away again after 2 seconds

    var fadeout = null;
    $("html").mousemove(function() {

          $("#top").slideDown(2000);
          $("#btm").slideDown(2000);
          if (fadeout != null) {
            clearTimeout(fadeout);
          }
          fadeout = setTimeout(3000, hide_playerlist);
          alert("call back fired");
        });

    function hide_playlist() {
          $("#top").slideUp(2000);
          $("#btm").slideUp(2000);
        }

});

问题是缪斯移动过于敏感,每次像素移动后都会触发。有什么办法吗?

4

1 回答 1

0

抱歉,我解决了这个问题。这不是鼠标移动敏感度,而是 chrome 和 Internet Explorer 上的 DirectX 操作系统级别的错误(Firefox 和 Opera 都很好)。该错误仅出现在 windows 机器上,并没有发生在 mac 和 linux 上。无论如何,我更新了我的代码以捕获当前位置,并且仅在位置发生变化时才起作用

if($("#mediaPlayerWrapper").length){// Slide top and bottom bars when video wrapper is displayed


            $("#top").slideUp(2000); //slide up(hide) DIV's
            $("#btm").slideUp(2000); 

                var timer;      
                $('html').mousemove(function(e) {//slide(show) DIV's down on mouse move
                    if(window.lastX !== e.clientX || window.lastY !== e.clientY){   //Check to see if mouse has movedbefore running code(Temporary solution mousemove envent firing problem on IE and Chrome)

                        $('#top').slideDown(2000);
                        $('#btm').slideDown(2000);
                        clearTimeout(timer);
                        timer = setTimeout(onmousestop, 5000);//call onmousestop after 5 seconds
                        }

                        window.lastX = e.clientX
                        window.lastY = e.clientY

                    });

                var onmousestop = function() {//slide up(hide) DIV's again
                    $('#top').slideUp(2000);
                    $('#btm').slideUp(2000);
            };    
于 2012-10-15T23:43:05.580 回答