2012-08-29 84 views
0

你好我是jQuery的新手,我有一個問題! 我想滾動到頂部,在通過AJAX調用加載的頁面中。滾動到頂部沒有工作

此作品(測試):

$(document).on('click', '#top_icon', function() { 
    alert('ok'); 
}); 

但這不工作(這是我想達到的目標):

$(document).on('click', '#top_icon', function() { 
    $('html, body').animate({scrollTop: '0px'}, 800); 
}); 

回答

0

試試這個,

$(document).on('click', '#top_icon', function() { 
    $('html, body').animate({'scrollTop': '0px'}, 800); 
    return false; 
}); 

scrollTop你的情況是undefined

+0

謝謝Jashwant,但它沒有工作.. – kapantzak

+0

檢查你的錯誤,如果有的話。另外,在動畫代碼行前後執行'console.log'。 – Jashwant

+0

對不起,但我是新來的,我以前沒有用過console.log。我必須先尋找那個! – kapantzak

0

我不確定jQuery,但scrollTop不是CSS屬性,因此可能不是可以動畫的屬性的一部分。

但是你可以爲這個自己創建一個簡單的動畫:

var startValue = 0; 
var endValue = 0; 
var duration = 800; 
var distance = 0; 
var velocity = 0; 
var step = 0; 
var endTime = 0; 

var animate = function() { 

    var elapsedTime = new Date().getTime() - step; 
    document.body.scrollTop += velocity * elapsedTime; 
    step = new Date().getTime(); 

    if (step > endTime) 
     document.body.scrollTop = endValue; 
    else 
     setTimeout(animate, 15); 

} 

    yourButton.onclick = function() { 

     startValue = document.body.scrollTop; 
     distance = endValue - startValue; 
     velocity = distance/duration; 
     step = new Date().getTime(); 
     endTime = step + duration; 
     animate(); 

    }; 

這裏是一個小提琴:http://jsfiddle.net/pXvQG/12/,向下滾動動畫,點擊身體。

+0

基督教您的演示程序似乎無法正常工作..請再次檢查代碼並更新一個工作示例。 – Lucky

+1

啊,對不起,在Chrome中進行了編碼。 Firefox使用scrollTop有一個非常奇怪的事情,但現在修復它(編輯中) –

+0

感謝@ChristianJørgensen現在在Firefox中工作.. – Lucky