0

こんにちは、私は jQuery が初めてで、問題があります。AJAX 呼び出しで読み込まれたページで、一番上までスクロールしたいと考えています。

これは機能します(テスト):

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

しかし、これは機能していません (これが私が達成したいことです):

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

2 に答える 2

0

これを試して、

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

scrollTopundefinedあなたの場合です。

于 2012-08-29T19:27:36.780 に答える
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/、下にスクロールしてアニメーション化し、本文をクリックします。

于 2012-08-29T20:09:40.313 に答える