【问题标题】:Loading new content when user reaches right side of the page当用户到达页面右侧时加载新内容
【发布时间】:2012-08-17 08:51:32
【问题描述】:

有很多插件可以在用户到达页面底部时加载内容,但是我找不到可以在用户到达文档右侧时加载内容的 jquery 插件。

有什么好的策略可以做到这一点吗?

有没有好的插件可以做到这一点?

谢谢, 彼得

【问题讨论】:

  • 我不知道该问题是否应该作为重复关闭,或者保持开放,因为这可能有更好的搜索词:)
  • @mr.是的,我已经看到了这些链接,但这基本上意味着从头开始创建一个插件,而我很感兴趣是否有一个好的插件可以这样做......
  • @Val 您认为哪个搜索词更好?
  • @peter 我的意思是没有更多的人更有可能像标题中那样搜索解决方案,因此对于有类似问题的人来说,这将是一个很好的问题......回答你的问题,是的,该插件创建起来非常简单,或者简单地使用 onscroll 事件来检测它何时到达末尾,方法是选择 .scrollWidth 来检测总可滚动宽度,然后 scrollLeft() 他们滚动了多远远,

标签: javascript jquery ajax scroll


【解决方案1】:
$('div').scroll(function (){
  var padder = 50;
  if( $(this).scrollLeft() >= $(this).scrollWidth -padder){
     //load more content as the user has scrolled 50px less than, the end, 
  }
})

我认为这样的事情可以做到......

【讨论】:

  • 顺便说一句,如果您需要将它用于将来的元素,请将第一行更改为 $('div').live('scroll',function (){
  • 另外,如果pxscrollWidth 一起返回,您可能希望使用parseInt() :)
  • 太好了,这很有道理,下一步可能是编写实际的插件并将其发布在github上))
  • 嗯,亲爱的@Val 我不应该听窗口事件而不是 div 事件吗?
【解决方案2】:

这很好地完成了工作:

//Scroll
  var padder = 150;
  $(document).live('scroll',function (){
     if($(this).scrollLeft() > padder){
    $.post("data.txt", { bla: "1", blu: "ax" },
        function(data) {
         //TODO add a check when reach the end
         padder = padder +200;
         $("#events_list").width($("#events_list").width()+200);
         $("#events_list").append(data);
        },"text");
     }
  }); 

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 2012-04-16
    • 2012-07-24
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多