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 に関する OS レベルのバグ (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 に答える