代码之家  ›  专栏  ›  技术社区  ›  Amr Badawy

当向下滚动到页面图像时,是否能够部分加载页面图像,或者它只是有效的?

  •  2
  • Amr Badawy  · 技术社区  · 14 年前

    我在一些网站上注意到了,比如 http://mashable.com 当您打开页面并尝试滚动它时,当您到达它时,它似乎会加载图像。我不知道这是一个闪烁的效果,还是真的是为了减少图像的负载直到滚动到它?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Daniel Dyson    14 年前

    这是一个让你开始的脚本。您需要对图像URL做些什么,而不仅仅是显示它们,但是我相信您会发现这一点…

    <!DOCTYPE html>
    <html>
    <head>
      <style type="text/css" >
        div { border: solid 1px black; height:200px; }
      </style>
      <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            var pixelsBetweenImages = 200;
            var imagesArray = {}
            var imagesArray = new Array(); // regular array (add an optional integer argument to control array's size)
            imagesArray[0] = "";
            imagesArray[1] = "";
            imagesArray[2] = "";
            imagesArray[3] = "/images/ImageThree.gif";
            imagesArray[4] = "/images/ImageFour.gif";
            imagesArray[5] = "/images/ImageFive.gif";
            imagesArray[6] = "/images/ImageSix.gif";
            imagesArray[7] = "/images/ImageSeven.gif";
            imagesArray[8] = "/images/ImageEight.gif";
    
            $(window).scroll(function() {
                var scrollpos = $(window).scrollTop() + $(window).height();
                var imageIndex = Math.floor(scrollpos / pixelsBetweenImages);
                if (imagesArray[imageIndex] != "") {
                    var div = $("#" + imageIndex);
                    div.html(imagesArray[imageIndex]);
                    imagesArray[imageIndex] = "";
                }
    
            });
        </script>
    
        <div>Visible on first load</div>
        <div>Visible on first load</div>
        <div>Visible on first load</div>
        <div id="3">3&nbsp;</div>
        <div id="4">4&nbsp;</div>
        <div id="5">5&nbsp;</div>
        <div id="6">6&nbsp;</div>
        <div id="7">7&nbsp;</div>
        <div id="8">8&nbsp;</div>
    
    </body>
    </html>
    
        2
  •  1
  •   Darin Dimitrov    14 年前

    这个站点的工作方式是在页面加载和滚动时对所有图像应用不可见样式。 display: block 具有 some effect .

        3
  •  0
  •   Zote    14 年前

    您可以附加加载/下载图像功能来滚动事件。

    一些事件示例 here .