同时在两个单独的列中延迟加载图像

时间:2013-04-15 09:49:20

标签: jquery css image lazy-loading

我正在建立一个摄影作品集。我有两个相邻的div列左侧浮动,每个列包含一长列图像,其大小为列宽度的100%。这使得一个很好的垂直方向的照片网格。但是,左列需要在右列开始加载之前完全加载,这可能需要很长时间。我希望从顶部同时加载两列,以便在用户加载页面时,首先看到列顶部的两个图像。

我纠正这个问题涉及jQuery Lazyload。但是,它似乎不想正常工作。它不是在滚动页面时加载图像,而是立即加载整个左列,然后加载整个右列。我想解决这个问题,以便首先在每列的顶部加载前几个图像,然后在滚动时加载其他图像。

提前致谢!

的Javascript

$(document).ready(function () {
    $(".leftcol img").lazyload({
        failure_limit : 4, 
        effect : "fadeIn",
        threshold : 10
    });
    $(".rightcol img").lazyload({ 
        failure_limit : 4, 
        effect : "fadeIn",
        threshold : 10
    });
    $(window).trigger('scroll');
});

HTML:

<div class="leftcol col">
 <div class='item'>
   <a href='filename.jpg>
    <img data-src='js/holder/holder.js/200x300' data-original='filename.jpg' alt='' />
   </a>
 </div>
 <div class='item'>
   <a href='filename.jpg>
    <img data-src='js/holder/holder.js/200x300' data-original='filename.jpg' alt='' />
   </a>
 </div>
</div>

<div class="rightcol col">
 <div class='item'>
   <a href='filename.jpg>
    <img data-src='js/holder/holder.js/200x300' data-original='filename.jpg' alt='' />
   </a>
 </div>
 <div class='item'>
   <a href='filename.jpg>
    <img data-src='js/holder/holder.js/200x300' data-original='filename.jpg' alt='' />
   </a>
 </div>
</div>

CSS:

.item{
    width:100%; 
    float: left;
    margin-bottom:8px;
    clear:both;
}
.item img{
    width:100%;
}
.col{
    max-width:650px;
    width:45%;
    float:left;
    margin-right:12px;
}

1 个答案:

答案 0 :(得分:5)

我有同样的问题,并将failure_limit参数增加到像9999这样的技巧。

文档(http://www.appelsiini.net/projects/lazyload)说“将failure_limit设置为10会导致插件在找到10张图像后停止搜索要加载的图像。如果你有一个时髦的布局,请将此数字设置为高。”< / p>

这将被归类为“时髦”。