代码之家  ›  专栏  ›  技术社区  ›  Keith Adler

当图像进入视区时延迟加载图像

  •  7
  • Keith Adler  · 技术社区  · 16 年前

    我最近访问过一些博客/网站,它们只在图像滚动到可见视区时加载图像。然后它们就消失了。是否有jquery…即使是WordPress插件也能做到这一点?

    例如 http://icodeblog.com

    3 回复  |  直到 14 年前
        1
  •  7
  •   Wladimir Palant    14 年前

    JavaScript的一个优点是,您可以查看源代码并查看正在发生的事情。在查看源代码后,我发现了:

    http://www.appelsiini.net/projects/lazyload

        2
  •  2
  •   Glennular    16 年前
        3
  •  1
  •   Michael Collins    15 年前

    您可以尝试我编写的这个jquery插件,它使用HTML注释来延迟加载任意位的HTML,包括图像:

    jQuery Lazy Loader Blog Post

    jQuery Lazy Loader Plugin Page

    下面是一个例子:

    <pre class=”i-am-lazy” ><!–
        <img src=”some.png” />
     –></pre>
    
    <pre class=”i-am-lazy” ><!–
        <div>Any, html css img background, whatever. <img src=”some.png” /> </div>
    –></pre>
    
    <script type=”text/javascript” src=”jquery.lazyloader.js” ></script>
    <script type=”text/javascript” >
    $(document).ready( function()
    {
        $(’pre.i-am-lazy’).lazyLoad();
    });
    </script>
    

    因此,基本上,您用一个占位符标记和内部HTML注释来包装您想要延迟加载的内容。当占位符在视区中可见时,它将替换为注释中的HTML字符串。

    您可以为占位符使用任何标记,但我喜欢pre,因为它在只有注释的情况下呈现为0维。

    希望这有帮助! @ MW·科林斯