Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在Javascript中看到无点击分页?_Javascript_Ajax_Pagination - Fatal编程技术网

是否可以在Javascript中看到无点击分页?

是否可以在Javascript中看到无点击分页?,javascript,ajax,pagination,Javascript,Ajax,Pagination,当某个元素在浏览器画布中可见时,是否有javascript库为我提供自定义事件 基本思想是,一旦列表中的最后一个元素在屏幕上可见,我就要加载接下来的10个元素,这样用户就不需要单击“下一页”按钮。 为了实现这一点,一个onBecomesVisible事件在显示最后一个元素时立即触发将非常方便。有这样的东西吗 它的首页是这样加载的。您可能想看看无休止的滚动: 您可能想看看无休止的滚动: 达斯汀·迪亚兹(他真的很聪明,你应该多读他的文章)在2007年写了一篇关于 可能正是你所需要的。达斯汀·迪亚兹(

当某个元素在浏览器画布中可见时,是否有javascript库为我提供自定义事件

基本思想是,一旦列表中的最后一个元素在屏幕上可见,我就要加载接下来的10个元素,这样用户就不需要单击“下一页”按钮。 为了实现这一点,一个onBecomesVisible事件在显示最后一个元素时立即触发将非常方便。有这样的东西吗


它的首页是这样加载的。

您可能想看看无休止的滚动:


您可能想看看无休止的滚动:

达斯汀·迪亚兹(他真的很聪明,你应该多读他的文章)在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的拼写)--关闭以进行尝试。不,他正在查找元素滚动到视图中时触发的事件,而不是在元素未隐藏时触发的事件。不,他正在查找元素滚动到视图中时触发的事件,而不是在元素未隐藏时触发的事件。