Js 之图片懒加载插件

一、PC端(lazyload)

1、引入js文件

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>

2、html代码

<img src="images/blank.gif" alt="" data-original="images/azu1.jpg">

3、调用lazyload

$("img").lazyload({
        // 当图片完全加载的时候,插件默认地使用show()方法来将图显示出来。你也可以使用其他的效果
        effect: "fadeIn",
        //lazyload插件默认用户滚动到图片位置时才触发加载图片,如果我们希望滚动到距离图片一定位置就触发加载,可以指定lazyload函数的threshold参数
        threshold: 200,
        //如果我们希望滚到到图片的位置后,还要通过click或hover事件来唤醒图片的加载,我们可以指定lazyload函数的event属性
        event: "click"
    });

二、移动端采用echo.js插件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片懒加载(预加载)插件echo.js</title>
<style>
*{ margin:0; padding:0; list-style:none}
.lanren{ width:440px; height:auto; margin:100px auto;}
.lanren li{ width:200px; height:200px; margin:10px 10px 0 0; float:left; overflow:hidden}
.lanren li img{ width:200px; height:200px; border:0;background: url(‘data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAAAWCAYAAAB5VTpOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZEQkQ3NDZFOEYxNzExRTQ5NUZCRjQzMkM2RTA1RTJEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZEQkQ3NDZGOEYxNzExRTQ5NUZCRjQzMkM2RTA1RTJEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkRCRDc0NkM4RjE3MTFFNDk1RkJGNDMyQzZFMDVFMkQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkRCRDc0NkQ4RjE3MTFFNDk1RkJGNDMyQzZFMDVFMkQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5hmE5XAAACP0lEQVR42uxYy3HCMBA1DPe4g5AKYiqwUwF0YHPiSirAVAA5copLIBUgOnAJTgemAkeaeZq8ESvGgJPh4J3ZsbQyq9XT/sygaZqgp18a9ID0gPSA3AXIYrGww63mUnNxh36leQk9hjLNkeZc85jkbfQUd9pyRrvd7kw2uvC+Mby+YZ+ExjHmIeZj6DUgrTTPWx4yBih/ThIgY3CIpz1gjRuVYuyNDM6dtYyA5XeM7k+s7R8lZCRAMtyeoVfNKcZHAued3P1wwUMaeIMEVgYde8crtx5bM0d3gN8vuwRkKMiM0QMAsMZ4LRiiBDfOAUJDnnSg+Qrub+cbPO1BQ6xXpN/uIcmi//CQeygnL1A4RObc8tbJKZWgp3DAXmGeO3sljw4I54kYB+aDmfB4otAy3vPiAeVhcggn11toixv+QsKshNCypffoASPy2JN0YN/NgDxT4rwmVhN4QSFUnJLcPUZ1kmgjyFJK8AEl+k5p6JHPKJEFFPNt6Yjsb281p1Jr1qaaPwTPqbE+QTK3HFCCtzy/orHrBJDvGzdcAoSEwiWn8hpSaFkQIvKgpOW+hVByXVmIfRMnHPe+kBt6YjWlDjIC820enNLK4cJl1/YxOSqMgv4TZBEl2S4odQCJ4I2Zc9lTX4UaeZA/Ua9hjebk52vMFOUF23QpPAsqwxG61Bnt1QVNnM8NBVnllGvl+xSQAKmpu7SeUZPHrHHAiuaVUHaZKuoq7SdA6fQtXVDZUqb6z//+/5AekB6Qv6AfAQYAZXq9jhikZ9kAAAAASUVORK5CYII=‘) no-repeat center #ccc;}
</style>
</head>
<body>

<!-- 代码部分begin -->
<div class="lanren">
    <li><img src="images/blank.gif" data-echo="images/azu1.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu2.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu3.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu4.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu5.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu6.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu7.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu8.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu9.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu10.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu11.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu12.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu13.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu14.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu15.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu16.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu17.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu18.jpg" /></li>
    <li><img src="images/blank.gif" data-echo="images/azu19.jpg" /></li>
    <li><img  src="images/blank.gif"data-echo="images/azu20.jpg" /></li>
</div>
<script src="js/echo.min.js"></script>
<script>
    echo.init();
</script>
<!-- 代码部分end -->

</body>
</html>

原文地址:https://www.cnblogs.com/yang-2018/p/11023747.html

时间: 2025-01-06 18:17:43

Js 之图片懒加载插件的相关文章

移动端图片懒加载插件

LazyloadImg介绍 LazyloadImg 轻量级的移动端图片懒加载插件原生js开发,不依赖任何框架或库支持将各种宽高不一致的图片,自动剪切成默认图片的宽高.比如说你的默认图片是一张正方形的图片,则各种宽度高度不一样的图片,自动剪切成正方形.完美解决移动端开发中,用户上传图片宽高不一致而导致的图片变形的问题.简洁的API,让你分分钟入门!!! 快速入门 var lazyloadImg = new LazyloadImg({ el: '#ul [data-src]', //匹配元素 top

Vue实现一个图片懒加载插件

前言 图片懒加载是一个很常用的功能,特别是一些电商平台,这对性能优化至关重要.今天就用vue来实现一个图片懒加载的插件. 这篇博客采用"三步走"战略--Vue.use().Vue.direction.Vue图片懒加载插件实现,逐步实现一个Vue的图片懒加载插件. Vue.use() 就像开发jQuery插件要用$.fn.extent()一样,开发Vue插件我们要用Vue.use().其实就是官方内部实现的一个方法,供广大开发者灵活开发属于自己的插件.只需要按照约定好的规则开发就行. 用

实现一个图片懒加载插件

实现一个图片懒加载插件-转 Web 图片的懒加载就是通过读取img元素,然后获得img元素的data-src(也可以约定为其他属性名)属性的值,并赋予img的src,从而实现动态加载图片的机制. 这里需要注意的是: img在初始化的时候不要设置src属性,因为即使设置 src='' 浏览器也会尝试加载图片. 一个简单的图片懒加载共涉及两个方面, 1. HTML 约定 我们首先需要给准备实施懒加载的img元素添加指定的class 这里为m-lazyload ,同时将img src赋值给 data-

页面性能优化-原生JS实现图片懒加载

在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况.我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片.所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再加载更多的图片.这种加载图片的方式叫做图片懒加载,又叫做按需加载或图片的延时加载.这样做的好处是:1.可以加快页面首屏渲染的速度:2.节约用户的流量. 一.实现思路 1.图片img标签自定义一个属性data-src来存放真实的地址. 2.当滚动页面时,检查所有的img标签,判断是否出现在事业中,如果

原生JS实现图片懒加载之一:Element.getBoundingClientRect()

实际项目开放中,特别是电商项目,由于有大量的图片加载必然会影响性能,所以实现图片的懒加载是非常有必要的. 实现图片懒加载的知识点 标签的data-属性 可视区域的监听 实现图片懒加载的原理 <img alt="loading..." data-src="images/1.jpg"> 当我们监听到图片进入可视区域后,就将data-src到值赋值给src属性 <script> var images = document.querySelector

原生js实现图片懒加载

原理: 将页面中的img标签src指向一张小图片或者src为空,然后定义data-src(这个属性可以自定义命名,我自己用data-src)属性指向真实的图片. src指向一张默认的图片,否则当src为空时也会向服务器发送一次请求.可以指向loading的地址. 代码实现: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title&

2.原生js实现图片懒加载

网上查了很多图片懒加载的内容, 但基本上都是jQuery实现的, 没有说清楚其原理, 所以研究了一下 多的不说, 上代码, 看不明白的建议看下我的上一篇文章<1. 图解浏览器和用户设备的宽高等属性> HTML部分(图片地址自己随意) <div> <img data-src="1.jpg" src="0.gif" alt=""> <img data-src="1.jpg" src=&qu

原生js实现图片懒加载原理

背景:页面图片多,加载的图片就多.服务器压力就会很大.不仅影响渲染速度还会浪费带宽.比如一个1M大小的图片,并发情况下,达到1000并发,即同时有1000个人访问,就会产生1个G的带宽.为了解决以上问题,提高用户体验,就出现了懒加载方式来减轻服务器的压力,优先加载可视区域的内容,其他部分等进入了可视区域再加载,从而提高性能. 1.懒加载原理一张图片就是一个<img>标签,浏览器是否发起请求图片是根据<img>的src属性,所以实现懒加载的关键就是: 在图片没有进入可视区域时,先不给

jquery.lazyload.js实现图片懒加载

个人理解:将需要延迟加载的图片的src属性全部设置为一张相同尽可能小(目的是尽可能的少占宽带,节省流量,由于缓存机制,当浏览器加载了一张图片之后,相同的图片就会在缓存中拿,不会重新到服务器上拿)的图片,然后将图片的实际地址写在alt属性里,当鼠标往下滑动的时候得到当前显示区域内的img的lz-src,动态的就将各自的lz-src属性的值赋值给src属性,这样就实现了图片延迟加载,减轻服务器端的压力,节省本地带宽,提升了访问网页的速度 插件源码地址: https://raw.github.com/