我为我的电子商务网站开发了无限滚动。一切都很好,但是我在一些页面上有超过100种产品,这对客户来说真的很烦,他们必须重新开始,一旦他们点击后退按钮(当他们正在预览产品时)。带工作历史的无限滚动回到jQuery
我试过replaceState
功能 - 我在保存来自顶部的当前位置的URL #
,和offset
后保存一个jSON
串,我是要客户回国后使用。这太可怕了。在最新版本的iOS中,Chrome和Safari完全没有工作,在一些Windows 7浏览器上,它仍然落后于地狱。
无论如何,有没有人试过History.js
? a **中的痛苦是否一样?其他方法呢?我正在考虑将offset
设置为cookie,但浏览器会等待AJAX加载所有产品吗?
这也是我当前的代码(AJAX而已,没有历史记录功能):
<script type="text/javascript">
$(function() {
// LazyLoad
function LazyLoad(collection, main, category, sort, offset, limit) {
window.ajax = false;
$.ajax({
type: "GET",
url: "http://daytona.bg/includes/ajax.php",
data: "collection=" + collection + "&main=" + main + "&category=" + category + "&sort=" + sort + "&offset=" + offset + "&limit=" + limit,
success: function(result) {
$.each(JSON.parse(result), function(key, value) {
$("#products").append('<div id="products-item">PRODUCT STUFF HERE</div>');
});
window.ajax = true;
}
});
}
// Globals
window.ajax = true;
// Variables
var collection = 'fall-winter';
var main = 'women';
var category = 'jackets';
var sort = 'new';
var offset = 0;
var limit = 12;
// OnLoad
$(window).load(function() {
LazyLoad(collection, main, category, sort, offset, limit);
});
// OnScroll
$(window).scroll(function() {
if($(window).scrollTop() >= ($(document).height() - $(window).height() - 900) && window.ajax == true) {
LazyLoad(collection, main, category, sort, offset +=12, limit);
}
});
});
</script>
下面是HM酷例如:
http://www2.hm.com/bg_bg/jeni/pazaruvane-po-vid-produkt/jaketa-i-palta.html
太棒了!像魅力一样工作:-) –