2012-08-11 86 views
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); 
     }  
    }); 

回答

1

嘗試100毫秒後耽誤您的動畫在鼠標不動,以避免每次鼠標移動像素

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); 
}); 
+0

嗨,大家好,這不完全是我後,我,基本上,我們可以在Y軸上工作,但基本上,我想要這樣做,以便當用戶滾動到中途時,它會自動滾動到鼠標位置,並且如果向後滾動消極的過去一半它會做相反的效果..我編輯了我的原代碼:) @bouillou – Shannon 2012-08-11 07:10:49

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); 
}); 
+0

不幸的沒有做到這一點:(一點也沒有」後的新動畫開始t「減去」身體的位置,它或多或少只是「增加了它」:http://shannonhochkins.v5.cloudsvr.com.au/ – Shannon 2012-08-11 06:24:07

+0

在Firefox上,如果我將鼠標移動到最左上角('window')。height()/ 2'和'$('window')。width()/ 2'來代替30.我也只是拉了一小段代碼你的代碼做了我想改變的東西 - 你應該把它加回來整個代碼。 – skinnynerd 2012-08-11 06:38:52

+0

我已將您的更改添加到我的網站,但如果您看了一下,它實際上並沒有向左或向左滾動,它只是在正軸上滾動! :( – Shannon 2012-08-11 06:55:05