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

Ale*_*xey 15 jquery lazy-loading

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

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

更新:

CoffeScript

jQuery ->
   $("img.lazy").show().lazyload()
   $(window).resize()
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*res 21

$("img.lazy").lazyload({
             threshold : 50
         });
Run Code Online (Sandbox Code Playgroud)

并添加这个:

$(window).load(function(){
     $("html,body").trigger("scroll");
});
Run Code Online (Sandbox Code Playgroud)


Kas*_*ail 5

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

function myFunction() {
  setTimeout(function() {
    window.scrollBy(0, 100)
  }, 1000);;
}
Run Code Online (Sandbox Code Playgroud)
<style>
  div {
    background-color: #FF9900;
    height: 999px;
    width: 100%;
  }
</style>

<a href="#" onClick="myFunction()">Click me to scroll after 1000 milliseconds</a>
<div></div>
Run Code Online (Sandbox Code Playgroud)
此示例在单击 url 后 1000 毫秒将页面向下滚动 100px。最好在 400 毫秒后使用 1px 滚动,以使其不被注意到/无缝。希望这可以帮助。


Mik*_*ola 4

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

  • 在css中添加宽度和高度。或者我假设您仅在使用 Webkit 浏览器时遇到问题。使用 Webkit jQuery 会将没有尺寸的图像报告为不可见。您也可以尝试将skip_invisible 设置为false。然而,由于浏览器不知道图像应该在布局中呈现在哪里(因为它们没有尺寸),延迟加载可能会加载所有图像(因为它们都在视口中)。简而言之。如果未设置尺寸,您很可能会遇到问题。 (3认同)