【问题标题】:Can I get an "infinite scroll" effect using only Masonry.js?我可以仅使用 Masonry.js 获得“无限滚动”效果吗?
【发布时间】:2014-02-08 02:31:07
【问题描述】:

我正在尝试学习编写 Tumblr 主题代码(我没钱买 Wordpress),我想弄清楚如何实现帖子的“无限/无尽滚动”(而不是分页);我宁愿不使用 2 个主要的无限滚动脚本中的任何一个,因为 infinite-scroll-js (由 Paul Irish 编写)有据可查(我能够让它工作),但我希望更多地控制帖子的加载方式,可以这么说,并且 Cody Sherman 的无限滚动代码根本没有记录,我不知道应该如何使用它(广泛不同的指令由几个非编码人员分发,他们对 Javascript 的掌握比我少,那就是说点什么)。

我不了解任何 Ajax,但我愿意根据需要阅读尽可能多的 JS 文档。我可以在突然添加帖子时使用以下顺序,还是我需要像 Paul Irish 那样了解 Ajax?

加载:(主体)

  1. 获取所有 .post 元素(带有子元素),将它们从 DOM 中删除,同时将它们添加到基本上只是帖子列表(数组?JS 术语?)的 var 中

  2. 加载一些计算出来的帖子数(可能会有一个算法,可能基于帖子高度或其他东西,或者可能在它们出现时动态测量它们)/将它们添加到 Masonry 容器中,动画,当用户滚动到页面、正文或 Masonry 容器的底部(尚未决定哪个)

这是合理的还是我会浪费我的时间?

【问题讨论】:

  • 从您模糊的要求来看,这是非常合理的。为了获得更有用的答案,如果您分享您的代码,那就太好了。
  • @mikedidthis 哈哈,是的,我明白你的意思了......我稍后会尝试提出一些东西,但到目前为止我一直在写的东西还没有奏效,所以我得出了结论要么我需要使用 JQuery(基础库)和 Masonry 以外的东西,要么我太无知而无法完成
  • 这里有一些很好的答案stackoverflow.com/questions/15630049/…
  • @panpsychist 谢谢,但如果可以避免的话,我宁愿不使用 Paul Irish —— 没有反对他或反对你,但我有我的理由(如果我记得的话,我相信有问题包括那部分)

标签: javascript jquery jquery-masonry infinite-scroll


【解决方案1】:

是的,您需要使用 Ajax。以下是我在 Wordpress 上使用 JQueryMasonry 的方法,不过在任何其他网站上应该都差不多。我正在使用 Masonry 功能 Append 来添加新图片。您可以在jorarts.org 的图库中看到它的实际效果

jQuery.ajax({
    type:"POST",
    url: "/wp-admin/admin-ajax.php",
    data: myData,
    success:function(response){
        jQuery("#LoadingImage").hide();

        if(response){
            var $newPics=jQuery(response).css({ opacity: 0 });;

            $newPics.imagesLoaded(function(){
                jQuery("#galleryPlaceholder").append($newPics).masonry( 'appended', $newPics, true );
                $newPics.animate({ opacity: 1 });
                jQuery("#galleryPlaceholder a").colorbox({rel:currCat, 
                    scalePhotos:true,
                    maxWidth:"90%",
                    maxHeight:"90%"});
            });
        }
    }
});

这里是 JQuery Ajax 文档https://api.jquery.com/jQuery.ajax/

【讨论】:

  • 感谢您在我浪费更多时间试图让它在没有 Ajax 的情况下工作之前解决这个问题。你知道我怎么知道要使用什么 .php 网址吗?
  • 它将是您服务器上的任何端点返回的图像,它可以是 php 或 js 或 python 或 RoR 或 asp 或 html,提供内容的东西。
  • 等一下,如果我不使用imagesLoaded 会怎样? (单独的库,对吗?)另外,如果我在 Tumblr 的代码编辑器之外进行测试(让我们面对现实吧,尝试在没有代码折叠的情况下处理整个主题是一件令人头疼的事情……而且他们的资产系统有点难以使用如果您对资产进行了大量更改),那么我可以通过这种方式检索帖子而无需获取应用程序密钥吗?我可以在不使用 Ajax 的情况下向 DOM/Masonry 容器添加和删除基本测试元素吗?
  • 我去了你说我可以看到 infiniscroll “在行动”的网站,但我不知道你的意思是在哪里实施。 “照片”/“电影”/等伪标签中似乎没有足够的项目需要无限滚动功能;我需要走得更远吗? [看起来不错,但滑动导航非常流畅!]
  • 是的,您可以在此处查看附加的文档以及代码示例和代码笔,您可以在 masonry.desandro.com/methods.html#appended 中尝试一下
【解决方案2】:

On,jScroll 是一个用于无限滚动的 jQuery 插件,由 Philip Klauzinski 编写。对我来说听起来像一个不同的人!

【讨论】:

  • 对不起,我没有看到底部的链接;它的答案首先引用了保罗爱尔兰的剧本。我正在努力成为一个更细心的读者。我的意思是,我宁愿不要 100% 使用别人的代码来做无限滚动部分;通常这意味着更少的定制选项和多功能性(我对一切都非常挑剔)。我非常乐意将可用代码仅用于“嘿,从 DOM 中删除这些元素,然后将它们存储在此对象中,直到您准备好检索它们并将它们重新插入”部分;我最关心的是实际的附加部分。
猜你喜欢
  • 1970-01-01
  • 2021-06-27
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多