# echo
**Repository Path**: lycals/echo
## Basic Information
- **Project Name**: echo
- **Description**: Lazy-loading images with data-* attributes
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-04-02
- **Last Updated**: 2024-11-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Echo.js
Forked from [Echo](https://github.com/toddmotto/echo).
Echo 是一个轻量的 JS 图片懒加载插件,不依赖其它库。支持 IE8+。
**使用示例:**
- [与 Amaze UI ScrollSpy 结合使用](http://amazeui.github.io/echo/docs/scrollspy.html)
## 获取 Echo.js
**使用 NPM:**
Amaze UI 只是添加了使用示例并发布到 NPM,代码与官方发布的版本保持一致。
```
npm install amazeui-echo
```
**使用 Bower:**
```
bower install echojs
```
## 使用方法
在图片上添加 `data-echo` 属性填写图片的真实地址;如果想懒加载背景图片,可以使用 `data-echo-background' 属性填写真实地址。
```html
```
## API 说明
### .init() (options)
`init()` API 有以下几个选项:
- **`offset`**
类型:`Number|String`,默认: `0`
`offset` 用于设置距离视口多远(水平、垂直方向)时开始载入图片, 为 `0` 时,图片进入视口以后立即加载。
- **`offsetVertical`**
类型: `Number|String`,默认: `offset` 选项的值
设置图片距离视口垂直方向上距离多少时开始载入图片。
- **`offsetHorizontal`**
类型: `Number|String`,默认: `offset` 选项得值
设置图片距离视口水平方向上距离多少时开始载入图片。
- **`offsetTop`**
类型: `Number|String`,默认: `offsetVertical` 的值
图片距离顶部多少时开始载入图片。
- **`offsetBottom`**
类型:`Number|String`,默认:`offsetVertical` 的值
图片距离底部多少时开始载入图片。
- **`offsetLeft`**
类型: `Number|String`,默认:`offsetVertical` 的值
图片距离左侧多少时开始载入图片
- **`offsetRight`**
类型: `Number|String`,默认:`offsetVertical` 的值
图片距离右侧多少时开始载入图片
- **`throttle`**
类型:`Number|String`,默认:`250`
控制 `window.onscroll` 触发频率,以避免过于频繁导致性能问题,默认为 `250` 毫秒。
- **`debounce`**
类型: `Boolean`,默认:`true`
[debounce](http://underscorejs.org/#debounce),用户停止滚动时才触发位置检测函数。
- **`unload`**
类型:`Boolean`,默认:`false`
图片超过视口时不加载。
- **`callback`**
类型: `Function`
回调函数接受两个参数,第一个为当前元素,第二个为操作状态(如 `load`、`unload`)。
下面的代码会在图片加载完成后添加 `loaded` class。
```js
echo.init({
callback: function(element, op) {
if(op === 'load') {
element.classList.add('loaded');
} else {
element.classList.remove('loaded');
}
}
});
```
### .render()
调用此方法可以在不滚动窗口的情况下触发图片加载。
```js
echo.render();
```
## License
MIT license