我正在使用一个项目,使用 jQuery Masonry和 Infinite Scroll插件从他们的API加载“n”数量的图片.看这个短 example我的理解是,我需要手头提交的HTML页面:
<nav id="page-nav">
<a href="pages/2.html"></a>
</nav>

问题是,我真的不知道有多少照片将被检索.这是例如我一次检索20图片.

$(document).ready(function(){       
        var access_token = location.hash.split('=')[1];

        if (location.hash) {

              $.ajax({
            type: "GET",dataType: "jsonp",cache: false,url: "https://api.instagram.com/v1/users/MY_USER_ID/media/recent/?access_token=MY_ACCESS_TOKEN",success: function(data) {

                for (var i = 0; i < 20; i++) {
            $("#instaFeed").append("<div class='instaframe'><a target='_blank' href='" + data.data[i].link +"'><img src='" + data.data[i].images.standard_resolution.url +"' /></a></div>");   
                }     

            }
        });


        } else {
        location.href="https://instagram.com/oauth/authorize/?display=touch&client_id=MY_CLIENT_ID&redirect_uri=MY_URI"; 

        }

    });

我想我将需要一个分页机制,但是基于上面提到的教程,我相信我将首先需要预定义要加载的HTML页面.所以现在这里我的问题

>这是否意味着此插件(Infinite Scroll)需要在目录中具有“n”个HTML文件以实现无限滚动?
>如果我不知道我将拥有多少页面,可以使用相同的插件来实现无限滚动.甚至不需要创建物理HTML文件呢?
>如何实现这种分页? (即,只要用户不断向下滚动即可加载20张图片)在线没有太多的文档,您可以通过演示或描述提供一小步吗?

亲切的问候

解决方法

1)这是否意味着这个插件(无限滚动)需要具有“n”个数量的html文件

绝对不.您不需要事先生成静态HTML页面,唯一认为您需要的是一种URL方案,其中可以通过更改URL中的一个数字来获取后续页面内容.

从无限滚动插件的角度来考虑它.您将页面#1中的插件JavaScript加载到页面#1中,并提供到页面#2的链接.现在当用户滚动页面#1时,插件所具有的唯一变量是当前页面编号,如2或3或4(N)

插件需要创建从用户滚动时获取内容的URL.那么插件怎么做呢?该插件查看页面#1中提供的下一个URL结构,进行解析并创建一个“基本路径”,将继续添加current_page_number来获取后续内容.那就是NAV选择器的作用.

所以让我们说一些像/ home / page / 2这样的页面#1中的下一个URL.插件将解析为数组

[/家/页/ 2]

并认为base_path =“/ home / page /”

当插件尝试提取page_number 3时,它只会将3添加到基本路径,如base_path.join(current_page_num)使其成为/ home / page / 3

在服务器端,我可以只有一个控制器来处理所有的/ home / page / 1到/ home / page / N链接.你可以看一下插件,查找_determinePath和检索功能.

现在你也可以看到这个问题.问题在于,根据您在代码中进行分页的方式以及需要多少变量,可能会有无数种URL结构.我做分页的方式不同于你做分页的方式.框架也是如此. Drupal分页方案可能与Djanga和wordpress等不同

该插件无法处理所有这些URL结构.给定下一个URL,不可能总是推断出需要添加current_page_number的“基本路径”.再看看插件的_determinePath()方法,看看它可以处理什么样的URL.它可以解析简单的URL结构,如page2.html或page = 2,但是如果您的URL结构很复杂或插件无法处理的那样,您必须提供自己的实现.看一下pathParse()方法.

2)如果我不知道我将有多少页面,可以使用相同的插件实现无限滚动.

再次,不需要创建HTML文件.您有两个选项来表示内容的结束(不知道您提前有多少张照片)

>当您达到“无内容条件”时,您可以返回HTTP 404.
>或者你可以返回一个空字符串.

这是否回答了问题?

如何使用插件

>第一页 – 包含 – 资产净值选择器 – 负载说明了这种方式
>第一页的加载 – 使用instagram分页和存储“nextURL”在你的JavaScript某处
>滚动 – 覆盖_determinePath以提供您自己的抓取URL(2) – 让插件检索该URL
>覆盖插件内容选择器 – 所以它返回新的元素回调
>插件抓取内容 – 使用插件内的回调更新您的页面

更新github回购

我已经为paul的github repo分配了PHP服务器端集成的文档.我认为插件的假设下一个URL只是依赖于当前的页码太限制了.我们需要从下一页内容获取nextURL.

Github Repo – https://github.com/rjha/infinite-scroll

在基础报销 – https://github.com/paulirish/infinite-scroll/pull/219上提出请求

我的javascript知识非常有限,也许你可以做更好的扩展基础插件.不过每一滴都有助于海洋

javascript – 使用jquery实现无限滚动的更多相关文章

  1. HTML5 播放 RTSP 视频的实例代码

    目前大多数网络摄像头都是通过 RTSP 协议传输视频流的,但是 HTML 并不标准支持 RTSP 流。本文重点给大家介绍HTML5 播放 RTSP 视频的实例代码,需要的朋友参考下吧

  2. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  3. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  4. HTML5数字输入仅接受整数的实现代码

    这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. 浅析HTML5中的download属性使用

    这篇文章主要介绍了浅析HTML5中的download属性使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  7. HTML5 Blob 实现文件下载功能的示例代码

    这篇文章主要介绍了HTML5 Blob 实现文件下载功能的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  8. html5简介_动力节点Java学院整理

    这篇文章主要介绍了html5简介,用于指定构建网页的元素,这些元素中的大多数都用于描述网页内容,有兴趣的可以了解一下

  9. web字体加载方案优化小结

    这篇文章主要介绍了web字体加载方案优化小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  10. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

随机推荐

  1. jquery-plugins – 是否可以使用猫头鹰旋转木马实现循环/无限轮播?

    我正在使用猫头鹰旋转木马,它的工作完美,除了它不支持循环/无限滚动.我没有搜索google和stackoverflow的想法,没有运气.有没有人在猫头鹰旋转木马上实现圆形/无限滚动?

  2. jQuery动态输入字段焦点

    我想使用以下jQuery向我的页面动态添加一个输入字段:在这样做之后,我希望输入字段具有闪烁的文本光标的焦点,所以我想在创建后立即输入.有人可以告诉我我该怎么办?

  3. jquery – 为什么$(window).height()这样错了?

    我试图获取当前浏览器的视口高度,使用但我得到的价值观太低了.当视口高度高达850px时,我从height()获取大约350或400像素的值.这是怎么回事?

  4. jquery – 如果在此div之外和其他draggables内部(使用无效和有效的还原选项),则可拖动恢复

    例如这样但是由于明显的原因,这不行.我可以说这个吗?

  5. 创建一个jQueryUI 1.8按钮菜单

    现在jQueryUI1.8已经出来了,我正在浏览更新,并且遇到了新的Buttonwidget,特别是SplitButtonwithadropdown的演示之一.这个演示似乎表明Buttonwidget可以在这里创建一个下拉菜单.作为讨论的问题,我想知道使用这个新的Button小部件来创建一个下拉菜单有什么方法.干杯.解决方法您必须在按钮下方列出一个列表,方式类似于此处为自动完成提供的演示:http

  6. 灰色divs使用JQuery

    我试图使用这个代码:为了淡出一大堆名为MySelectorDiv的div,唯一的是,它只会淡出第一个而不是所有的div,为什么呢?

  7. 使用jQuery动态插入到列表中

    我有两个订单列表在彼此旁边.当我从一个列表中选出一个节点时,我想按照字母顺序插入到另一个列表中.抓住的是我想要把一个元素放在另一个列表中,而不刷新整个列表.奇怪的是,当我插入到右边的列表中,它工作正常,但是当我插入到左边的列表中时,顺序永远不会出来.我也尝试将所有内容读入数组,并将其排序在一起,以防止children()方法没有按照显示顺序返回任何东西,但是我仍然得到相同的结果.这是我的jQuer

  8. 没有回应MediaWiki API使用jQuery

    我试图从维基百科获取一些内容作为JSON:但我没有回应.如果我粘贴到浏览器的地址栏,就像我得到预期的内容.怎么了?解决方法您需要通过添加&callback=?来触发具有$.getJSON()的JSONP行为?在querystring上,像这样:Youcantestithere.没有使用JSONP,你正在击中same-originpolicy,阻止XmlHttpRequest获取任何数据.

  9. jQuery Ajax请求每30秒

    我有这段代码,但是有些人在我的网站上的值可能会改变.我需要每30秒钟更新一次#financediv.这可以做吗解决方法您可以将代码放在单独的函数中,如下所示:然后每30秒建立一个定时器调用该函数:祝你好运!总结以上是DEVMAX为你收集整理的jQueryAjax请求每30秒全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  10. jquery – keypress事件在IE和Chrome中不工作,但在FF工作

    任何想法为什么会这样发生?我通常认为Chrome会更加宽容代码?这是我的按键键.我错过了什么吗?右图();和leftimage();是应该工作的功能,因为我在其他地方使用这些功能谢谢您的帮助!

返回
顶部