嘿傢伙,我 寫了一個小的自定義動畫滾動功能...jquery/javascript:未捕獲TypeError?
function scroll(selector, animate, viewOffset) {
pageOffset = selector.offset();
scrollPos = pageOffset.top - viewOffset;
if (animate) {
$('html, body').animate({scrollTop : scrollPos + 'px'}, {
duration: 'slow', // how fast we are animating
easing: 'easeOutQuint', // the type of easing
complete: function() { }
});
} else {
$('html, body').scrollTop(scrollPos);
}
}
我把它與scroll($('#something'), false, 30);
它的實際工作,但有時它是一個有點馬車和功能不正常工作。我總是在點擊事件上調用scroll()函數。
我遇到的最大問題是頁面加載時,我的控制檯告訴我下面一行。
Uncaught TypeError: Cannot read property 'top' of null (script.js line 191 which is line 3 in my example above)
任何想法可能會導致此錯誤? scroll()函數甚至不在dom-ready或on-load上調用。它只是針對特定的點擊事件進行調用。
感謝你的幫助
這取決於參數是否已經是jQuery對象。就個人而言,我總是用$。()來包裝所有東西,所以它沒關係。 – Alnitak 2011-03-15 16:35:39
參數名稱'selector'意味着它只是一個簡單的選擇器而不是一個jQuery對象 - 您可能是對的,但對我來說,它看起來不是jQuery對象,並且確實解釋了他正在獲取的錯誤。 – karim79 2011-03-15 16:38:49
它仍然得到相同的錯誤,當你嘗試使用滾動()http://jsfiddle.net/ALYpY/ – themerlinproject 2011-03-15 16:39:43