1. 程式人生 > >使用jquery實現的按需載入

使用jquery實現的按需載入

圖片的延遲載入最常見的是隻載入網頁顯示在螢幕中的圖片,如果使用者沒有滾動到網頁靠下的部分,那圖片就不用顯示了,節省HTTP請求和頻寬,同時提高首屏的載入速度,提高使用者體驗。不會的童鞋拿去研究研究

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>按需載入</title>
    <style type="text/css">
        *{list-style:none;}
        li{width:300px;height:250px;border:solid 1px #333;padding:10px;margin-bottom:10px;}
    </style>
</head>
<body>
    <ul>
        <li><img srcImg="./sunli/1.jpg" src="" alt="" width="100%"></li>
        <li><img srcImg="./sunli/2.jpg" alt="" width="100%"></li>
        <li><img srcImg="./sunli/3.jpg" alt="" width="100%"></li>
        <li><img srcImg="./sunli/4.jpg" alt="" width="100%"></li>
        <li><img srcImg="./sunli/5.jpg" alt="" width="100%"></li>
        <li><img srcImg="./sunli/6.jpg" alt="" width="100%"></li>
    </ul>
    <script type="text/javascript" src="jquery-1.8.3.min.js"></script>
    <script type="text/javascript">
    $(window).scroll(function(){
        $('li[isLoaded!=1]').each(function(){
            //如果存在當前isloaded屬性 直接返回
            // if($(this).attr('isLoaded')) return;
            //頁面的y軸滾動距離
            var sT = $(window).scrollTop();
            //頁面可視區域的高度
            var CH = $(window).height();
            //獲取當前元素距離文件頂部的偏移量
            var OT = $(this).offset().top;
            //如果圖片即將要展現在螢幕上的話
            if(OT < sT + CH){
                //獲取當前li中img的src屬性值
                var src = $(this).find('img').attr('srcImg');
                //設定src屬性
                $(this).find('img').attr('src',src);
                //載入完畢之後新增屬性 做標識
                $(this).attr('isLoaded',1);
            }
        })
    })
 
 
    </script>
</body>
</html>