嗨,我很快就怀疑这让我很生气。
单击此按钮时,我尝试自动向下滚动到按钮。
我的按钮的y-index值保存在名为scrollIndex的变量上(感谢offset()方法)。
现在我正试图用这个向下滚动窗口:
var scrollIndex = $('#tourbutton').offset();
$("body").animate({scrollTop:(scrollIndex.top)},500,"linear");
我实际上已经尝试了很多东西,但似乎没有任何工作可以解决,因为我错误地使用了scrollTop方法()..
有任何帮助吗?谢谢!
我的完整代码:
window.onload = initAll;
function initAll() {
changeStyle();
$('#tourbutton').click = hello();
}
function hello() {
var scrollIndex = $('#tourbutton').offset();
$("html, body").animate({scrollTop:(scrollIndex.top)},800,"swing");
//var scrollIndex = $('#tourbutton').offset();
//$("window").scrollTo({top:scrollIndex},800);
}
解决了!我只是在click()里面写了所有内容:
function initAll() {
$('#tourbutton').click(function() {
var scrollIndex = $('#tourbutton').offset();
$("html, body").animate({scrollTop:(scrollIndex.top)},800,"swing");
//var scrollIndex = $('#tourbutton').offset();
//$("window").scrollTo({top:scrollIndex},800);
});
changeStyle();
}
现在一切正常,但我不太明白为什么......如果有人理解为什么我无法将click eventHandler链接到外部函数,我会很高兴知道答案。
感谢所有人!
答案 0 :(得分:5)
您是否在使用Chrome进行测试?我遇到了另一个问题,如果你在Chrome中指定了100%的身高,那么设置滚动位置就不起作用了。您必须将站点的主体放在可滚动的div中,或者不指定100%的高度。
试试这个:
var scrollIndex = $('#tourbutton').offset();
$("html, body").animate({scrollTop:(scrollIndex.top)},500,"linear");