Heim > Web-Frontend > js-Tutorial > js图片延迟技术一般的思路与示例_javascript技巧

js图片延迟技术一般的思路与示例_javascript技巧

WBOY
Freigeben: 2016-05-16 16:55:00
Original
1069 Leute haben es durchsucht

图片延迟技术一般的思路

1.现将img元素对应的src路径设置为背景图片,而该img所对应的url路径存放在一个自设的属性中(以便进行src替换)。

2.获取卷轴的高度和窗口的高度

3循环需要延迟加载的img数组,获取img的高度,判断该元素是否在可视窗口内。若该元素在可视窗口内,则进行src替换

一下为测试代码

html

复制代码 代码如下:






  • test

  • test

  • test




  • js部分
    复制代码 代码如下:

    var imgsglobal=[
    "http://cdn.duitang.com/uploads/item/201306/07/20130607171626_QkC3T.thumb.600_0.jpeg",
    "http://img4.duitang.com/uploads/item/201306/07/20130607172438_Teijr.jpeg",
    "http://cdn.duitang.com/uploads/item/201306/08/20130608190311_BYwcA.thumb.600_0.jpeg",
    "http://g-ec4.images-amazon.com/images/G/28/BOOK-Catalog/Liaoxiaojun/B003U5TATY_01_AMZN.jpg",
    "http://www.yishun.net/tuysL3R1eXNpbWcwNC50YW9iYW9jZG4uY29tL2ltZ2V4dHJhL2k0Lzc0MDY1MDAzMi9UMl9HbmVYanRhWFhYWFhYWFhfISE3NDA2NTAwMzIuanBn.jpg",
    "http://www.yishun.net/tuysL3R1eXNpbWcwMy50YW9iYW9jZG4uY29tL2ltZ2V4dHJhL2kzLzc0MDY1MDAzMi9UMkVHbF9YaVhjWFhYWFhYWFhfISE3NDA2NTAwMzIuanBn.jpg",
    "http://img4.duitang.com/uploads/item/201306/08/20130608190125_3kFty.jpeg",
    "http://img4.duitang.com/uploads/item/201304/29/20130429142901_SQjJv.thumb.600_0.jpeg",
    "http://img4.duitang.com/uploads/item/201112/04/20111204170801_fiBKm.jpg",
    "http://img2.duitang.com/uploads/item/201211/06/20121106233027_LdQaS.thumb.600_0.jpeg",
    "http://i2.sinaimg.cn/gm/2011/0127/U5238P115DT20110127111837.jpg",
    "http://img2.duitang.com/uploads/item/201209/24/20120924162953_hLPJe.jpeg",
    "http://wenwen.soso.com/p/20110624/20110624085901-745594320.jpg",
    "http://img4.duitang.com/uploads/item/201206/15/20120615185646_uzmrt.thumb.600_0.jpeg",
    "http://img4.duitang.com/uploads/item/201202/11/20120211213039_U4Sj8.thumb.600_0.jpg",
    "http://cdn.duitang.com/uploads/item/201201/25/20120125145922_n4Vz8.thumb.600_0.jpg"
    ];
    function addImgEle(){
    var str='';
    for(var i=0, len=imgsglobal.length; istr+='
  • js图片延迟技术一般的思路与示例_javascript技巧
  • '
    }
    $("#showImg").append(str);
    }
    $(document).ready(function(){
    addImgEle();
    });
    (function(win){
    var lazyLoad=win['lazyLoad']||{};
    var camelize = function (s) {
    return s.replace(/-(\w)/g, function (strMatch, p1) {
    return p1.toUpperCase();
    });
    };
    lazyLoad={
    init:function(ImgClass){
    var offsetPage = window.pageYOffset ? window.pageYOffset : window.document.documentElement.scrollTop,
    offsetWindow = offsetPage + Number(window.innerHeight ? window.innerHeight : document.documentElement.clientHeight);
    var Imgeles=ImgClass;
    for(var i=0, len=Imgeles.length; iif(Imgeles[i].getAttribute("resrc")=="show"){
    continue;
    }
    var o=Imgeles[i];
    if(o){
    postPage = o.getBoundingClientRect().top + window.document.documentElement.scrollTop +window.document.body.scrollTop;
    postWindow = postPage + Number(this.getStyle(o, 'height').replace('px', ''));
    if ((postPage > offsetPage && postPage offsetPage && postWindow var src=o.getAttribute("resrc");
    o.setAttribute("src", src);
    o.setAttribute("resrc", "show");
    }
    }
    }
    },
    getStyle:function (element, property) {
    if (arguments.length != 2) return false;
    var value = element.style[camelize(property)];
    if (!value) {
    if (document.defaultView && document.defaultView.getComputedStyle) {
    var css = document.defaultView.getComputedStyle(element, null);
    value = css ? css.getPropertyValue(property) : null;
    } else if (element.currentStyle) {
    value = element.currentStyle[camelize(property)];
    }
    }
    return value == 'auto' ? '' : value;
    }
    }
    win.lazyLoad=lazyLoad;
    })(window);
    $(document).ready(function(){
    lazyLoad.init($("img.lazyImg"));
    window.onscroll=function (){
    lazyLoad.init($("img.lazyImg"));
    }
    });
    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage