我正在使用scrollsaver.js(http://en.hasheminezhad.com/scrollsaver)来维护回发中元素的滚动位置。有些情况下我希望重置滚动位置,但我很难这样做。
通过列表进行分页,我希望滚动到每个页面的顶部更改。我这样做是通过在分页处理程序中注册对resetGridScroll(下面)的调用。
scrollsaver.js与页面加载事件相关联。当我这样做时,我的函数在scrollsaver.js加载位置之前运行。有没有办法强制我的页面加载后运行?
function resetGridScroll() {
$(document).ready(function () {
$("div.items").animate({ scrollTop: 0, easing: 'swing', queue: false }, 15000);
});
}
编辑:我最终清除了cookie scrollsaver.js设置以存储滚动位置。它在脚本加载之前被清除,因此所有位置都被重置。不优雅,但可行。
答案 0 :(得分:2)
如果您需要加载外部js脚本并在其后执行代码,则可以使用$.getScript()并将代码放入回调中:
$.getScript("scrollsaver.js", function(){
//code to execute after the script has loaded here
});
答案 1 :(得分:0)
将调用resetGridScroll()
的函数放在:
$(document).ready(function () {
//here
});
例如,不是要调用您的函数:
$(document).ready(function () {
resetGridScroll();
});
function resetGridScroll() {
$("div.items").scrollType(0);
$("div.items").animate({ scrollTop: 0, easing: 'swing', queue: false }, 15000);
}