是否可以在Javascript中看到无点击分页?
当某个元素在浏览器画布中可见时,是否有javascript库为我提供自定义事件 基本思想是,一旦列表中的最后一个元素在屏幕上可见,我就要加载接下来的10个元素,这样用户就不需要单击“下一页”按钮。 为了实现这一点,一个onBecomesVisible事件在显示最后一个元素时立即触发将非常方便。有这样的东西吗是否可以在Javascript中看到无点击分页?,javascript,ajax,pagination,Javascript,Ajax,Pagination,当某个元素在浏览器画布中可见时,是否有javascript库为我提供自定义事件 基本思想是,一旦列表中的最后一个元素在屏幕上可见,我就要加载接下来的10个元素,这样用户就不需要单击“下一页”按钮。 为了实现这一点,一个onBecomesVisible事件在显示最后一个元素时立即触发将非常方便。有这样的东西吗 它的首页是这样加载的。您可能想看看无休止的滚动: 您可能想看看无休止的滚动: 达斯汀·迪亚兹(他真的很聪明,你应该多读他的文章)在2007年写了一篇关于 可能正是你所需要的。达斯汀·迪亚兹(
它的首页是这样加载的。您可能想看看无休止的滚动:
您可能想看看无休止的滚动: 达斯汀·迪亚兹(他真的很聪明,你应该多读他的文章)在2007年写了一篇关于 可能正是你所需要的。达斯汀·迪亚兹(他真的很聪明,你应该多读他的文章)在2007年写了一篇关于
可能正是您需要的。您可以使用jQuery编写自己的简单插件
$.belowViewport = function(elem){
var port = $(window).scrollTop() + $(window).height();
return port <= $(elem).offset().top;
}
$.fn.onBecomeVisible = function( fn ){
var obj = this;
$(window).scroll( function() {
obj.each( function() {
if(!$.belowViewport(this) && !$(this).data('scrollEventFired')){
$(this).data('scrollEventFired', true);
fn(this);
}
});
});
return this;
}
脚本将fn绑定到每个匹配的元素。当任何匹配的元素滚动到视图中时,将触发该函数。还将向函数传递触发事件的元素
请注意,您不能使用live绑定此事件,因此在添加新元素后必须重新绑定它(假定您也希望最后一个元素上的事件)
编辑这里我错了,:visible不返回视口中是否有元素。但是,我已经编辑了源,因此它现在会检查视口中是否有元素。该函数检查元素是否在视口下方,我们假设如果元素不在视口下方,它已滚动到视图中,我们应该执行该函数 编辑2
在google chrome 1.0、firefox 3.0.10和IE7中进行了测试,您可以使用jQuery编写自己的简单插件
$.belowViewport = function(elem){
var port = $(window).scrollTop() + $(window).height();
return port <= $(elem).offset().top;
}
$.fn.onBecomeVisible = function( fn ){
var obj = this;
$(window).scroll( function() {
obj.each( function() {
if(!$.belowViewport(this) && !$(this).data('scrollEventFired')){
$(this).data('scrollEventFired', true);
fn(this);
}
});
});
return this;
}
脚本将fn绑定到每个匹配的元素。当任何匹配的元素滚动到视图中时,将触发该函数。还将向函数传递触发事件的元素
请注意,您不能使用live绑定此事件,因此在添加新元素后必须重新绑定它(假定您也希望最后一个元素上的事件)
编辑这里我错了,:visible不返回视口中是否有元素。但是,我已经编辑了源,因此它现在会检查视口中是否有元素。该函数检查元素是否在视口下方,我们假设如果元素不在视口下方,它已滚动到视图中,我们应该执行该函数 编辑2
在google chrome 1.0、firefox 3.0.10和IE7中对此进行了测试,另一种方法是始终使用包装器函数来显示/隐藏所有内容。换句话说,不是直接执行
style.display='none'
或$(“#某物”).hide()代码>,则始终使用自己的函数将元素的id传递给该函数
然后,您可以更轻松地跟踪元素何时变为可见/隐藏,并设置要运行的事件句柄。另一种方法是始终使用包装函数来显示/隐藏所有内容。换句话说,不是直接执行style.display='none'
或$(“#某物”).hide()代码>,则始终使用自己的函数将元素的id传递给该函数
然后,您可以更轻松地跟踪元素何时变为可见/隐藏,并设置要运行的事件句柄。+1,如果它能工作,这将非常棒。(修正了scroll的拼写)--去试试看。+1,如果它能工作的话,这真是太棒了。(修复了scroll的拼写)--关闭以进行尝试。不,他正在查找元素滚动到视图中时触发的事件,而不是在元素未隐藏时触发的事件。不,他正在查找元素滚动到视图中时触发的事件,而不是在元素未隐藏时触发的事件。