0.1.1 • Published 5 years ago
@hippie/gallery v0.1.1
Gallery
JavaScript 相册, 无任何依赖
特性
- 兼容移动端和 pc 端
- 高性能动画
- 图片预加载
- 基于事件
兼容性
| Edge | IE10~11(需引入 Promise) | Chrome 32+ | Firefox 29+ | Opera 19+ | Safari 9+ |
|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
用法
安装
npm i -S @hippie/gallery基本用法
import Gallery from '@hippie/gallery';
const gallery = new Gallery(opts);
gallery.show(n);opts{Object}opts.list{Array 必需} 所有大图 url 或 key 组成的数组opts.zIndex{Number 可选} 相册的z-index, 默认10000opts.interceptor{Function 可选} 加载大图之前执行的拦截器, 拦截器执行返回图片 url 或Promise实例
gallery实例对象hide{Function}, 关闭相册show(n){Function},n{Number 可选}, 打开相册并显示第n张图片(n 从 0 开始, 默认为 0)showImg(n),n{Number 可选}, 显示第n张图片
默认按键绑定
esc关闭相册←、↑切换上一张图→、↓切换下一张图
例子
// 返回一个相册实例
var gallery = new Gallery({
list: [
'./static/park.jpg',
'./static/jiuzhaigou.jpg',
'./static/shenzhen.jpg'
'./static/up.jpg'
]
});
gallery.show(2); // 打开相册并显示第2(从0开始)张图片
// 关闭相册
gallery.hide();使用 interceptor
/**
* 这个key可以是图片的key或其他映射规则, 当切换到一张图时,
* 在加载图片之前, 它对应的key会被传入到拦截器中, 拦截器可以直接返回图片url
* 也可以返回一个promise实例, 然后异步获取到图片 url 再将其 resolve
*/
const keyList = [
'190jmknfdsa',
'ioklmjasbfd',
'vcznjkdsadw',
'fdsavcdsebb',
'fdsv3bdfsbe'
]
var gallery = new Gallery({
list: keyList,
interceptor: function (key) {
return new Promise(function (resolve, reject) {
$.get('/api/getImgUrlByKey?key=' + key, function (res) {
if (res && res.code === 0) {
resolve(res.data);
}
})
});
}
});协议
MIT
Gallery
JavaScript gallery for PCs and mobiles, no dependencies
Features
- For PCs, and compatible with mobiles
- High performance animation
- Image-preloading
- Events-Based
Compatibility
| Edge | IE10~11(with Promise polyfill) | Chrome 32+ | Firefox 29+ | Opera 19+ | Safari 9+ |
|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Installation
npm i -S @hippie/galleryBasics
import Gallery from '@hippie/gallery';
const gallery = new Gallery(opts);
gallery.show(n);opts{Object}opts.list{Array mandatory} Consist of all image urls or image keysopts.zIndex{Number optional} Thez-indexofgallery, default10000opts.interceptor{Function optional} The interceptor before loading a big image, expected to return an instance of Promise or a real image url.
galleryinstancehide{Function} Close galleryshow(n){Number optional} Open gallery and display the nth image, starting at 0, default 0showImg(n),n{Number optional} Display the nth image
Default binding
escclose the gallery←、↑switch to the previous image→、↓switch to the next image
Examples
// return an instance of Gallery
var gallery = new Gallery({
list: [
'./static/park.jpg',
'./static/jiuzhaigou.jpg',
'./static/shenzhen.jpg'
'./static/up.jpg'
]
});
gallery.show(2); // open the gallery and display the second image(starting at 0)
// close the gallery
gallery.hide();Interceptor usage
/**
* This key may be an image key or other mapping rules,
* when switching to an image, before loading the image,
* its corresponding key will be passed to the inteceptor,
* the inteceptor may return an image url directly or return a Promise instance
* which get the image url asynchrously and resolve it.
*/
const keyList = [
'190jmknfdsa',
'ioklmjasbfd',
'vcznjkdsadw',
'fdsavcdsebb',
'fdsv3bdfsbe'
]
var gallery = new Gallery({
list: keyList,
interceptor: function (key) {
return new Promise(function (resolve, reject) {
$.get('/api/getImgUrlByKey?key=' + key, function (res) {
if (res && res.code === 0) {
resolve(res.data);
}
})
});
}
});License
MIT