`

Echo.js 一个简单的JavaScript图片与加载插件

阅读更多

 

我们都知道目前解决图片与加载问题,有一个十分流行的方法就是使用lazy load延迟加载的特性,使用该方法可以在一定程度上提升网站的加载性能,但今天要介绍的是另外一款与图片预加载插件 Echo.js,它有一个优点就是无需jquery的帮助,非常轻量级大小不足1KB,只需一小段js代码即可实现lazy load相同的效果。

 

使用方法:
第一步:在要实现图片与加载的 img标签中添加如下代码

 

<img src="img/blank.gif" alt="" data-echo="img/album-1.jpg">

 

当鼠标移动到图片可视区域时就会自动切换到data-echo所指向的图片路径。

第二步:添加一段js脚本

window.echo = (function (window, document) {
 
  'use strict';
 
  /*
   * Constructor function
   */
  var Echo = function (elem) {
    this.elem = elem;
    this.render();
    this.listen();
  };
 
  /*
   * Images for echoing
   */
  var echoStore = [];
   
  /*
   * Element in viewport logic
   */
  var scrolledIntoView = function (element) {
    var coords = element.getBoundingClientRect();
    return ((coords.top >= 0 && coords.left >= 0 && coords.top) <= (window.innerHeight || document.documentElement.clientHeight));
  };
 
  /*
   * Changing src attr logic
   */
  var echoSrc = function (img, callback) {
    img.src = img.getAttribute('data-echo');
    if (callback) {
      callback();
    }
  };
 
  /*
   * Remove loaded item from array
   */
  var removeEcho = function (element, index) {
    if (echoStore.indexOf(element) !== -1) {
      echoStore.splice(index, 1);
    }
  };
 
  /*
   * Echo the images and callbacks
   */
  var echoImages = function () {
    for (var i = 0; i < echoStore.length; i++) {
      var self = echoStore[i];
      if (scrolledIntoView(self)) {
        echoSrc(self, removeEcho(self, i));
      }
    }
  };
 
  /*
   * Prototypal setup
   */
  Echo.prototype = {
    init : function () {
      echoStore.push(this.elem);
    },
    render : function () {
      if (document.addEventListener) {
        document.addEventListener('DOMContentLoaded', echoImages, false);
      } else {
        window.onload = echoImages;
      }
    },
    listen : function () {
      window.onscroll = echoImages;
    }
  };
 
  /*
   * Initiate the plugin
   */
  var lazyImgs = document.querySelectorAll('img[data-echo]');
  for (var i = 0; i < lazyImgs.length; i++) {
    new Echo(lazyImgs[i]).init();
  }
 
})(window, document);

 

演示效果

 

文章来源:Echo.js 一个简单的JavaScript图片与加载插件

 

分享到:
评论

相关推荐

    echo.js图片懒加载插件

    echo.js是一款轻量级、高性能的JavaScript图片懒加载插件,它能够有效地优化页面性能,提升用户浏览体验。 ### 1. 懒加载概念 懒加载(Lazy Loading)是一种优化策略,它允许内容在真正需要时才进行加载。对于图片...

    Echojs延迟加载图片JavaScript微型库

    "Echojs延迟加载图片JavaScript微型库"就是一种实现这一功能的优秀解决方案。 **延迟加载的原理与重要性** 延迟加载,顾名思义,是指在用户滚动页面到特定位置时才加载图像。这种技术主要针对那些初始渲染时不需...

    echo_1.7.3.js.rar

    echo是一个独立的JavaScript(不依靠jQuery)、轻量级的、延迟图片加载插件,echo压缩后体积不到1k,使用html的标准data-*属性,echo支持IE8+。http://www.yeedoo.net/programming/59.html

    JavaScript图像延迟加载库Echo.js

    Echo 是一个独立的 JavaScript 懒加载图像的工具,快速、体积小(不足1k)和使用 HTML5 的 data- 属性,通过本文给大家介绍JavaScript图像延迟加载库Echo.js ,感兴趣的朋友一起学习吧

    echojs+图片懒加载

    Echo 是一个轻量的 JS 图片懒加载插件,不依赖其它库。特别适用于移动端需要加载大量图片的应用。使用方法,查看https://blog.csdn.net/qq_44952391/article/details/122477458?spm=1001.2014.3001.5502

    html图片懒加载

    在压缩包"jsloading-141022114841"中,可能包含了echo.js库的源文件和其他相关示例代码,用户可以参考这些文件来快速理解和应用这个懒加载插件。需要注意的是,实际使用时应确保浏览器支持HTML5的`...

    推荐移动端网页使用的图片懒加载

    总的来说,图片懒加载是移动端网页优化的重要手段,通过合理运用如Echo.js这样的插件,可以有效提升网页性能,为用户提供更加顺畅的浏览体验。在实际应用中,需要根据项目需求和用户行为调整懒加载策略,以达到最佳...

    echo图片延迟加载库

    Echo.js 是一个独立的延迟加载图片的 JavaScript 插件。Echo.js 不依赖第三方库,压缩后不到1KB大小。 延迟加载是提高网页首屏显示速度的一种很有效的方法,当图片元素进入窗口可视区域的时候,它就会改变图像的 src...

    jquery.autocomplete.js使用示例,可直接运行

    这个例子展示了如何配置和使用jQuery Autocomplete.js,以及如何与服务器进行交互,实现动态数据加载和选中项的处理。 ### 5. 结论 jQuery Autocomplete.js 插件是提高网页表单输入效率的好帮手,通过与Ajax的结合...

    js前端实现图片懒加载(lazyload)的两种方式

    Echo.js是一款简单实用的图片延时加载插件,它不需要依赖jQuery。如果项目中没有使用jQuery,那么Echo.js将是个不错的选择。使用Echo.js来实现图片懒加载的步骤如下: 1. **引入Echo.js插件**:将Echo.js脚本引入到...

    H-ui.admin_v2.3.1

    根目录 ...) ...│ robots.txt 搜索引擎爬虫配置文件 ...│ Echo.js 图片延迟加载插件 │ colpick.js 颜色插件 │ handlebars.js js模版引擎 │ waterfall.min.js 瀑布流插件 └─temp 测试数据、图片

    jQuery的强密码插件PWChecker.zip

    Power PWChecker 是一个用来确保用户输入了安全... JavaScript图像延迟加载库Echo.js386 Echo 是一个独立的 JavaScript 懒加载图像的工具,快速、体积小(不足1k)和使用 HTML5 的 data- 属性。Echo 支持 IE8 。 ...

    H-ui.admin 前端框架

    H-ui.admin是用H-ui前端框架开发的轻量级网站后台模版 ...│ Echo.js 图片延迟加载插件 │ colpick.js 颜色插件 │ handlebars.js js模版引擎 │ waterfall.min.js 瀑布流插件 └─temp 测试数据、图片

    web医疗影像dicom插件(2个)

    DWV是一个轻量级的JavaScript DICOM viewer,支持在Web浏览器上实时解析和显示DICOM图像。它利用HTML5的Canvas元素进行图像渲染,并且可能包括各种图像处理功能,如窗宽窗位调整、缩放和平移。 3. **NgDicomViewer*...

    PHP、Smarty与jQuery Ajax 分页插件jquery.pager.js的使用

    ### PHP、Smarty与jQuery Ajax 分页插件jquery.pager.js的使用详解 #### 一、引言 随着互联网技术的不断发展,用户对于网页交互性的需求越来越高。为了提升用户体验,Ajax技术逐渐成为一种不可或缺的技术手段。它...

    JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】 <font color=red>原创</font>

    **JavaScript语法高亮插件——highlight.js** 在网页中展示代码时,为了增强代码的可读性和美观性,通常会采用语法高亮显示。`highlight.js` 是一款强大的JavaScript库,用于实现各种编程语言的代码高亮。它支持...

    平衡计分卡web平台bambooBSC.zip

    JavaScript图像延迟加载库Echo.js386 Echo 是一个独立的 JavaScript 懒加载图像的工具,快速、体积小(不足1k)和使用 HTML5 的 data- 属性。Echo 支持 IE8 。 ... 相关教程 ...

    phonegapechoplugin:phonegap echo插件

    Echo插件是PhoneGap生态系统中的一个重要组成部分,它的设计目的是为了帮助开发者测试和验证应用程序与服务器之间的数据传输。通过调用这个插件,开发者可以发送一个字符串到服务器,服务器接收到后会将该字符串原样...

Global site tag (gtag.js) - Google Analytics