【问题标题】:jQuery Masonry infinite scroll and picture overlap problems with my tumblr theme我的 tumblr 主题的 jQuery Masonry 无限滚动和图片重叠问题
【发布时间】:2011-11-22 15:13:32
【问题描述】:

我是编程新手(javascript),但过去几天我做了相当多的研究,以使我的 tumblr 主题正常工作。我知道我的问题很常见,但似乎我没有足够的知识来正确集成许多类似示例中给出的代码部分。

My theme 应该覆盖 tumblr 的“每页 15 个帖子”限制,并使用“无限滚动”选项,它应该将我所有的帖子(全部是图片)放在一个无限的页面中。嗯,它没有。在here 的一点帮助下,我设法用 masonry() 调用中的几个随机更改包装了我的 {block:Posts},我最终得到了this

如您所见,我的图片没有重叠(终于!),但在第 15 个帖子之后,它看起来像是创建了一个新页面,并且最后的图片没有正确对齐。

我的 jQuery 砌体代码是这样的:

<script type="text/javascript">

$(window).load(function () {
$('.autopagerize_page_element').masonry(),
$('.autopagerize_page_element').infinitescroll({
navSelector : "div.navigation",
// selector for the paged navigation (it will be hidden)
nextSelector : "div.navigation a#nextPage",
// selector for the NEXT link (to page 2)
itemSelector : ".autopagerize_page_element",
// selector for all items you'll retrieve
bufferPx : 10000,
extraScrollPx: 12000,
loadingImg : "http://b.imagehost.org/0548/Untitled-2.png",
loadingText : "<em></em>",
},
// call masonry as a callback.
function() { $('.autopagerize_page_element').masonry({ appendedContent: $(this) }); }
);
});
</script>

我知道,这是一团糟…… 非常感谢一些帮助。

【问题讨论】:

  • 我面临同样的问题。发现bug了吗???

标签: jquery-masonry


【解决方案1】:

我不习惯使用 tumblr,但我知道发生了什么:

Line 110:

每次调用 masonry 时,此脚本都会围绕条目创建一个包装器 div,因为该脚本,每次加载看起来都像是一个新页面,我认为您可以简单地删除它。

一些提示: 您不必等待 $(windows).load 来执行砌体,将其更改为 $(function()

为避免图像重叠,请使用附加的砌体方法和 imagesLoad:Refer this

我看到您使用的是 masonry 1.0.1,请确保您使用的是 masonry 最新版本 (2.1.06)

示例代码:

$(function() {
    //$('.autopagerize_page_element').masonry();
    var $container = $('.autopagerize_page_element');
    //wait until images are loaded
    $container.imagesLoaded(function(){
      $container.masonry({itemSelector: '.entry'});
    });
$('.autopagerize_page_element').infinitescroll({
navSelector : "div.navigation",
// selector for the paged navigation (it will be hidden)
nextSelector : "div.navigation a#nextPage",
// selector for the NEXT link (to page 2)
itemSelector : ".entry",
// selector for all items you'll retrieve
bufferPx : 10000,
extraScrollPx: 12000,
loadingImg : "http://b.imagehost.org/0548/Untitled-2.png",
loadingText : "<em></em>",
},
// call masonry as a callback.
//function() { $('.autopagerize_page_element').masonry({ appendedContent: $(this) }); }
      function( newElements ) {
        // hide new items while they are loading
        var $newElems = $( newElements ).css({ opacity: 0 });
        // ensure that images load before adding to masonry layout
        $newElems.imagesLoaded(function(){
          // show elems now they're ready
          $newElems.animate({ opacity: 1 });
          $container.masonry( 'appended', $newElems, true ); 
        });
    }
);
});

并确保删除此标头块中的最后一个脚本:

    <script type="text/javascript" src="http://static.tumblr.com/imovwvl/dJWl20ley/jqueryformasonry.js"></script> 
    <script type="text/javascript" src="jquery.masonry.min.js"></script> <!-- last masonry version -->
    <script src="http://static.tumblr.com/df28qmy/SHUlh3i7s/jquery.infinitescroll.js"></script>
<!--<script src="http://static.tumblr.com/thpaaos/lLwkowcqm/jquery.masonry.js"></script>-->

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    相关资源
    最近更新 更多