您好我是jQuery的新手,我遇到了问题! 我想滚动到顶部,在通过AJAX调用加载的页面中。
这有效(测试):
$(document).on('click', '#top_icon', function() {
alert('ok');
});
但这不起作用(这是我想要实现的目标):
$(document).on('click', '#top_icon', function() {
$('html, body').animate({scrollTop: '0px'}, 800);
});
答案 0 :(得分:0)
试试这个,
$(document).on('click', '#top_icon', function() {
$('html, body').animate({'scrollTop': '0px'}, 800);
return false;
});
在您的情况下, scrollTop
为undefined
。
答案 1 :(得分: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/,通过向下滚动并单击身体来设置动画。