2014-04-30 192 views
1

我對web開發很新穎。如果鼠標滾輪向上,我正在嘗試讓頁面向左滾動,如果鼠標滾輪停止滾動,則向右滾動頁面。這是我的代碼,任何幫助將不勝感激。Uncaught TypeError:undefined不是函數 - 滾動腳本

$(window).bind('mousewheel', function(e){ 
    if(e.originalEvent.wheelDelta > 0) 
    { 
     $("*").scrollLeft(300); 
    } 
    else 
    { 
     $("*").scrollRight(300); 
    } 
}); 

我不知道爲什麼它打破,任何人有一些見解?

+0

[event.wheelDelta返回undefined]的可能重複(http://stackoverflow.com/questions/8886281/event-wheeldelta-returns-undefined) – Satpal

+0

該問題的解決方案是包含originalEvent。可悲的是,它在我的代碼 –

+0

那麼DOMMouseScroll呢?你看過小提琴嗎? – Satpal

回答

2

這是因爲這不是.scrollLeft()函數的要點。 當你這樣做:

$("*").scrollLeft(300); 

你說:採取一切元素,並設置其滾動條300左側。在你的小提琴中,沒有元素有一個滾動條,所以沒有任何反應。如果你想爲這個目標使用這個功能,你需要一個帶有overflow-x: scroll的容器div。看看this fiddle一個簡單的(而不是完美的)例子。

的你更簡單的解決辦法是改變scrollLeft()值窗口:

$(window).scrollLeft($(window).scrollLeft()+300); 

this other fiddle

+0

謝謝你,我會upvote,但我需要15代表。我實際上剛剛意識到,當我正在閱讀API時,我只是根據函數名稱做出了假設。 –

+0

沒有問題。我還編輯了答案,併爲您的問題添加了更簡單的解決方案,請告訴我們它是否適合您。 – Aioros

+0

這很好用!我也修改了它,所以沒有if語句,只是這個 $(window).scrollLeft($(window).scrollLeft()+ e.originalEvent.wheelDelta); 一行 –

相關問題