0

基本的に、私は自分のサイトに「自動スクロール」オプションを設定しようとしています。マウスを右ではなく左に戻すと再スクロールしませんが、その基本は機能しています。

私はこれに3時間以上携わっていますが、ネットを検索するのは運が悪いです。

これが私が持っているものです:

 $(document).mousemove(function(e){
    window.mouseXPos = e.pageX;
    window.mouseYPos = e.pageY; 
       var height = $(window).height() /2;
       if (window.mouseYPos < height){
        $('body,html').stop().animate({     
            scrollTop: window.mouseYPos
        },10 );
       }
       else{
        $('body,html').stop().animate({     
            scrollTop: -window.mouseYPos
        },10 );
       }    
    });
4

2 に答える 2

1

マウスが左に移動すると、ウィンドウの外に移動している可能性があるため、イベントはトリガーされません。マウスがウィンドウ内にあるポイントまでスクロールすることをお勧めします。試す

$(document).mousemove(function(e){
   window.mouseXPos = e.pageX;
   window.mouseYPos = e.pageY;
   $('body,html').stop().animate({
    scrollTop: window.mouseYPos-$('window').height()/2,
    scrollLeft: window.mouseXPos-$('window').width()/2
   },1000 );
});
于 2012-08-11T06:21:57.563 に答える
1

各マウスピクセルが移動した後に新しいアニメーションが開始されるのを避けるために、マウスが移動していない100ms後にアニメーションを遅らせるようにしてください

scrollDelayTimer = null;
$(document).mousemove(function(e){
       window.mouseXPos = e.pageX;
       window.mouseYPos = e.pageY;

       clearTimeout(scrollDelayTimer);
       scrollDelayTimer = setTimeout(function () {
          scrollDelayTimer = null;
          $('body,html').stop().animate({
              scrollTop: window.mouseYPos,
              scrollLeft: window.mouseXPos
          },1000 );
       },100);
});
于 2012-08-11T06:29:54.233 に答える