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 回答