jQuery LazyLoad在滚动之前不加载图像

jQuery LazyLoad不会在打开页面的可见部分加载图像,直到我在1px上滚动页面。

当我滚动页面所有工作正确

更新:

CoffeScript

jQuery -> $("img.lazy").show().lazyload() $(window).resize() 

但是$(window).resize()只有在我加载页面时从浏览器的控制台输入它才有帮助

您的图像必须设置宽度和高度。

 $("img.lazy").lazyload({ threshold : 50 }); 

并添加这个:

 $(window).load(function(){ $("html,body").trigger("scroll"); }); 

试试这个….

 $(function() { $("img.lazy").show().lazyload() window.onload = function() { $(window).resize() }; }); 

当前版本的Lazyload会在窗口加载事件时触发初始更新。 因此,如果您稍后动态加载图像 – 您需要一个额外的事件,例如滚动以触发更新周期。 这是我的问题,图像仅在滚动后显示。

我太迟了但如果您仍然遇到此问题,请在您所需的事件上使用纯javascript setTimeout()和window.scrollBy()组合。 我在onClick上解决了它,因为我必须在选项卡式窗格下显示图像,其中只有第一个加载的选项卡在页面加载时显示图像,但是其他选项卡在单击时没有显示,直到用户滚动一点。 我的代码如下:

 function myFunction() { setTimeout(function() { window.scrollBy(0, 100) }, 1000);; } 
  Click me to scroll after 1000 milliseconds 

这就是我解决这个问题的方法:

 $("html,body").on('scroll', function(){ $(window).resize() }); 

它非常简单,只是在body和html标签的滚动事件上创建一个window.resize。 咣当。

每当我按某些事情过滤时,我通过$.post()查询获取我的图像,因此我需要在每次重新加载时运行所有内容

 $.post( "queries.php", { var1:var1, var2:var2, .. }, function(response){ for( var i=0; i 

初始化lazyload时,您可以告诉它触发哪些事件(默认设置为’scroll’)。 我建议在该列表中添加一个自定义事件,并在有意义的时候触发它:

 $('.lazy').lazyload({ event: 'scroll whenever-i-want' }); // whenever you want to trigger your event (after ajax load, on dom ready, etc...) $(document).trigger('whenever-i-want'); 

这将保留默认滚动function,但也允许您按需触发延迟加载。

正如在这个SO问题中找到的那样,将skip_invisible设置为false可以解决我的问题

 $(document).ready(function () { $("img.lazy").lazyload({ 
placeholder: rooturl + "Themes/images/imgloading.gif",
effect: "fadeIn",
skip_invisible: false
});
});
$(document).ready(function() {
$(window).load(function() {
update();
});
});

使用这个延迟加载脚本https://github.com/tuupola/jquery_lazyload/blob/master/jquery.lazyload.js#L130

对于具有按z-index排序的多个图像的滑块,lazyload选项failure_limit上用场。

有关此选项的更多详细信息,请访