无限滚动和自定义行为
InfiniteScroll and Custom Behavior
我正在使用http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/然而,为了提供无限滚动功能,插件的默认设置依赖于下一个链接的href属性来检测当前页面并加载下一组结果。
我已经在自己的javascript对象中跟踪结果偏移量和页面大小,只想让infinitescroll插件调用窗口。LoadMore函数来加载下一个结果,我检查了插件代码,看起来我应该覆盖loading.start函数(特别是beginAjax),
opts.loading.start = opts.loading.start || function() {
$(opts.navSelector).hide();
opts.loading.msg
.appendTo(opts.loading.selector)
.show(opts.loading.speed, function () {
beginAjax(opts);
});
};
这是要覆盖的正确功能吗,如果是的话,我将如何从插件初始化中做到这一点,下面的代码将不起作用
($('.deals-list'), this.el).infinitescroll({
navSelector : "div.navigation",
nextSelector : "div.navigation a",
itemSelector : ".deal",
debug: true,
loading.start: function(){
alert('testing');
}
});
谢谢。
Yehia
无限滚动提供自定义行为。为了创造一种新的行为来解决你的特定问题,你必须做两件事。
首先,扩展了infinitescroll的原型,并定义了一种自定义的检索方法:
$.extend($.infinitescroll.prototype, {
retrieve_custombehavior: function () {
$('#nav > a').click();
}
});
注意该方法的后缀_custombehavior
。这将是我们将传递到无限滚动中的行为(即,它在确定其操作时将查找的方法集合——在本例中为retrieve_custombehavior
)。
第二,将行为后缀传递到无限滚动的构造函数:
$('.deals-list').infinitescroll({
navSelector : "div.navigation",
nextSelector : "div.navigation a",
itemSelector : ".deal",
debug: true,
behavior: '_custombehavior'
});
这会导致无限滚动在到达页面末尾时运行您的自定义行为(并调用检索方法)
我对无限滚动函数不太熟悉,所以我不知道这是否是要覆盖的正确函数。只要看一眼就知道可能是。
试试这个:
($('.deals-list'), this.el).infinitescroll({
navSelector : "div.navigation",
nextSelector : "div.navigation a",
itemSelector : ".deal",
debug: true,
loading: {
start: function(){
alert('testing');
}
}
});
有自定义解决方案。我在用
(function($, undefined) {
$.extend($.infinitescroll.prototype,{
_setup_loadOffers: function infscr_setup_loadOffers () {
var opts = this.options,
instance = this;
// Bind nextSelector link to retrieve
$('a.btn-seemore-offers').click(function(e) {
instance.retrieve();
});
},
});
})(jQuery);
$('#container').infinitescroll({behavior: 'loadOffers',})
您可以尝试从头开始编写,而不是在工作中使用库。你所需要的只是决定你的单元格(页面),它将在屏幕的末尾一个接一个地加载。您可以将它们的offset().top
值存储在javascript中。然后,您将需要一个pageRecognition()
方法,该方法将在每次滚动时运行。在该方法中,您在pageCluster
列表上运行,该列表包含一个具有页面索引和offset().top
值的字典。您可以比较window.sollTop()和这些页面的offset.top()值来识别哪个页面在.上
通过这种方式,您不需要遵循任何库中的任何更新。在专业水平上,这也是推荐的。
- 使用没有插件的javascript自定义滚动条
- 无法使用jQuery自定义内容滚动条将自定义滚动条添加到iframe
- Javascript 自定义滚动条
- 如何使用引导程序创建自定义滚动条
- 通过 ajax 使用自定义滚动条向元素添加内容
- Jquery地铁风格的自定义滚动条
- jQuery自定义滚动条插件没有't使用水平滚动进行更新:true
- 自定义滚动条逻辑
- 可以在 gwt 中设置本机滚动条的样式,无需定义自定义滚动条,也无需使用 ScrollPanel 或 CustomScr
- 高度 100% 自定义滚动条
- jQuery / JavaScript 中的自定义滚动条数学
- Webkit 在使元素可见后不呈现自定义滚动条
- 带有Facebook评论的自定义滚动条
- JQuery自动完成自定义滚动条
- jQuery UI;jQuery自定义滚动条数学
- 自定义滚动条中的自定义滚动条(水平)(垂直)
- 自定义滚动javascript困惑
- 如何计算自定义滚动条的位置
- 在jScrollPane中自定义滚动条的高度
- Javascript自定义滚动条Bug