我正在编写ajax systeme无限卷轴。 它运作良好,我只是有一个我无法解决的最后一个问题。
如果我使用滚动条向下滚动并按住它直到ajax被触发,我的屏幕会显示在顶部
目前我做了一个解决方法,以便屏幕显示我在ajax触发之前的位置(使用var scrollTopSpy),但我不希望显示在顶部,我该如何避免它?
这是我的剧本:
<script type="text/javascript">
$(document).ready(function () {
var scrollTopSpy;
$(document).ajaxStart(function () {
scrollTopSpy = $(window).scrollTop();
toastr.warning("chargement en cours...");
$("body").css("overflow","hidden");
}).ajaxStop(function () {
$(window).scrollTop(scrollTopSpy);
$("body").css("overflow","auto");
toastr.success("chargement terminé");
});
var page = {{ pager.currentPage }};
var lastPage = {{ pager.countTotalPage }};
$(window).scroll(function () {
$('#more').hide();
$('#no-more').hide();
$(".pages-btns").hide();
if($(window).scrollTop() + $(window).height() > $(document).height() - 300) {
if (page < lastPage) {
page++;
var route = "{{ route("www-place", params|merge({"page":"JSPAGEVAR"})) }}";
route = route.replace("JSPAGEVAR", page);
$.get( route, function( data ) {
$('.view-list > li:last').after(data);
});
}
}
});
});
</script>
另一个信息:它不是ajax调用,但是当我退出$(window).scroll函数时(我尝试返回false而没有成功)
这是jsfiddle的简单示例:http://jsfiddle.net/gk6df/
所以:按住滚动条,转到extrem,点击“确定”并查看