在“无限”模式下对骨干和backbone.pageableCollection的新功能,一切正常,除非我打电话到下一页。在调用加载下一页之后,Chrome和safari一直滚动到页面顶部,而不是维护滚动位置并加载下面的记录,这使得用户非常讨厌必须再次向下滚动。这是我用来获取下一页的代码
this.collection.getNextPage({remove: false, silent: true});
在Firefox和Opera中,一切都很好用,它们都保持滚动位置并加载下一条记录,但Chrome和safari不起作用,是我们网络应用程序最常用的浏览器。
我已尝试过
的所有内容 var pos = window.pageYOffset;
this.collection.getNextPage({remove: false, silent: true});
window.scrollTo(0, pos);
要设置超时并且无效,它总是向上滚动到页面顶部
setTimeout(function() {window.scrollTo(0, pos);}, 1);
此时,我仍然坚持使用解决方案,以便Chrome和Safari保持滚动位置。
任何帮助将不胜感激。
答案 0 :(得分:0)
最后找到了一个适用于所有浏览器的解决方案,可以保持滚动位置。如果有人知道为什么要解释会很好,谢谢!
var pos = window.pageYOffset;
this.collection.getNextPage({remove: false, silent: true});
$("html,body").animate({ scrollTop: pos }, "slow");