Echo.js 一个简单的JavaScript图片与加载插件
程序员文章站
2022-04-08 17:09:29
...
我们都知道目前解决图片与加载问题,有一个十分流行的方法就是使用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图片与加载插件
上一篇: 读文本文件
下一篇: C#委托的简单小例子
推荐阅读
-
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
-
一个简单的javascript图片放大效果代码
-
22.JavaScript制作一个简单的提示框插件
-
28.JavaScript实现简单的图片瀑布流插件
-
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
-
Javascript实现图片懒加载插件的方法
-
一个简单的javascript图片放大效果代码_图象特效
-
用html+css+js实现的一个简单的图片切换特效_javascript技巧
-
用html+css+js实现的一个简单的图片切换特效_javascript技巧
-
IE6图片加载的一个BUG解决方法_javascript技巧