美文网首页iOS Developer
JS中关于图片的懒加载方式

JS中关于图片的懒加载方式

作者: 神采飞扬_2015 | 来源:发表于2017-04-25 10:39 被阅读1060次

采用JavaScript

  • 获取到所有的img标签,然后遍历获取到原有的src内容,置换为占位图,在onload事件中替换上述保存的src内容
var images=document.getElementsByTagName("img");
    for(var i=0;i<images.length;i++){
        var oldSrc =  images[i].src; // 图片的src
        images[i].src = "CommonHTML/LazyLoad/ImgLoading.gif"; // 图片默认加载的内容
        images[i].onload = function () { // 加载时,用src替换默认图片
        this.src = oldSrc; 
    }
}
  • 使用onload、闭包-
<body>
   <img id=\"lazy\" src=\"ForumDetailHtmlTemplate/ImgLoading.gif\" width=\"640\" heigh=\"480\" />
</body>
<script type="text/javascript">
    function loadImg(url,callback){
        var oImg = new Image(); // 创建一个Image对象,实现图片的预加载
        oImg.width = 100;
        oImg.height = 100;
        oImg.onload = function(){
            // 图片下载完毕时异步调用callback函数
            callback(oImg);  
            oImg.onload = null;  // 防止gif图返回进行回调
        };
        
        oImg.src = url; // 先进行onload的绑定,再赋值给src
    }
    
    loadImg('http://img4.imgtn.bdimg.com/it/u=1350614941,725003865&fm=23&gp=0.jpg?1=59',function(oim){
        document.getElementById('lazy').src = oim.src;
        // console.log(oim.src);        
    });

采用第三方

==注意== 是使用之前需要导入lazyload.min.js文件,而且jquery.js需要在之前导入、如下

    <script type="text/javascript"  src="CommonHTML/JavaScript/jquery.min.js"></script>
    <script type="text/javascript"  src="CommonHTML/JavaScript/jquery.lazyload.min.js"></script>

使用过程

<script type="text/javascript">
    $(function() {
        $('img').each(function () {
            var orgi = $(this).attr('src');
            
            $(this).attr("src","CommonHTML/LazyLoad/ImgLoading.gif");
            $(this).attr('data-original',orgi);
            $(this).lazyload({
                effect : "fadeIn",
                event : ""
            });
        });
    });

data-original 为目标url ,原有的src图像为占位符。
==注意== 图像的标签中需要加入data-original才可以生效。如果动态加入,如上述代码会发生莫名其妙的问题,有些图片会出来,有些不会。

相关文章

  • JS中关于图片的懒加载方式

    采用JavaScript 获取到所有的img标签,然后遍历获取到原有的src内容,置换为占位图,在onload事件...

  • 图片懒加载

    前端实现图片懒加载(lazyload)的两种方式 原生JS实现最简单的图片懒加载 30行Javascript代码实...

  • 懒加载和预加载

    懒加载 js懒加载 意义 懒加载(LazyLoad)是前端优化的一种有效方式,能极大的提升用户体验,图片加载是其重...

  • js 实现图片懒加载

    一、懒加载 懒加载也叫延迟加载,Js中图片的延迟加载,延迟图片需要符合某些条件时才加载;对于图片过多的页面,为了加...

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • 图片懒加载

    懒加载与预加载的基本概念。 懒加载也叫延迟加载:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片。 预...

  • 常见网站性能优化方法

    1. 尽量减少HTTP请求次数 合并js 合并css 图片sprite 2. 延迟加载内容 图片懒加载 数据懒加载...

  • vue3图片懒加载

    图片懒加载 src/direcitves/index.js 在main.js中引入该文件import direct...

  • 懒加载和预加载

    1)概念: 懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加载:提前加载图片...

  • 图片懒加载和下拉懒加载

    图片懒加载http://js.jirengu.com/leve/1/edit?html 下拉懒加载http://j...

网友评论

    本文标题:JS中关于图片的懒加载方式

    本文链接:https://www.haomeiwen.com/subject/hytvzttx.html