lory是一款支持移动触摸设备的简洁的js幻灯片插件。该幻灯片插件可以通过纯js调用,也可以将该幻灯片插件作为jQuery插件来使用。该幻灯片的过渡动画具有硬件加速功能,并且可以定制是否使用easing效果。以下列出该幻灯片的一些特点:
- 支持移动触摸设备。
- 简单,界面整洁,纯js调用。
- 可以作为jQuery插件来使用。
- 过渡效果支持硬件加速。
- 可定制easing效果。
- 可无限循环,制作为旋转木马。
- 丰富的回调函数。
安装
可以通过node来按钮该幻灯片插件。
npm install --save lory.js
var lory = require('lory');
也可以通过bower来安装该幻灯片插件。
bower install lory --save
使用方法
HTML结构
该幻灯片使用的HTML结构是固定格式的,参考下面的HTML结构格式:
<div class="slider js_simple simple">
<div class="frame js_frame">
<ul class="slides js_slides">
<li class="js_slide">1</li>
<li class="js_slide">2</li>
<li class="js_slide">3</li>
<li class="js_slide">4</li>
<li class="js_slide">5</li>
<li class="js_slide">6</li>
</ul>
</div>
</div>
CSS样式
下面是该幻灯片的必要CSS样式:
.frame {
position: relative;
font-size: 0;
line-height: 0;
overflow: hidden;
white-space: nowrap;
}
.slides {
display: inline-block;
}
li {
position: relative;
display: inline-block;
}
JAVASCRIPT
完成上面的步骤之后就可以通过下面的方法来调用该幻灯片插件。
<script src="js/lory.min.js"></script>
<script>
'use strict';
document.addEventListener('DOMContentLoaded', function() {
var simple = document.querySelector('.js_simple');
lory(simple, {
// options going here
});
});
</script>
你也可以将该幻灯片作为jQuery插件来调用:
<script src="js/jquery.min.js"></script>
<script src="js/jquery.lory.min.js"></script>
<script>
'use strict';
$(function() {
$('.js_simple').lory({
infinite: 1
});
});
</script>
在同一个页面中集成多个幻灯片
<script src="js/lory.js"></script>
<script>
'use strict';
document.addEventListener('DOMContentLoaded', function() {
Array.prototype.slice.call(document.querySelectorAll('.js_slider')).forEach(function (element, index) {
lory(element, {});
});
});
</script>
公共方法
| 名称 | 描述 |
| prev | 幻灯片滚动到前一个slide |
| next | 幻灯片滚动到下一个slide |
| slideTo | 幻灯片滚动到指定的slide,参数: index {number} |
| setup | 绑定事件侦听器,合并默认和用户选项,基于DOM元素设置幻灯片(只在初始化时调用一次)。如果DOM元素或用户选项改变或事件监听需要重新绑定是会调用该方法。 |
| reset | 设幻灯片回到开始位置,并重置当前的index(在Resize事件时会被调用)。 |
配置参数
| 名称 | 描述 | 默认值 |
| slidesToScroll | 幻灯片立刻滚动 | default: 1 |
| slideSpeed | 有效的幻灯片滑动动画时间,单位毫秒 | default: 300 |
| rewindSpeed | 从最后一个slide回倒所需的时间,单位毫秒 | default: 600 |
| snapBackSpeed | time for the snapBack of the slider if the slide attempt was not valid | default: 200 |
| ease | cubic bezier easing 函数。可参考:http://easings.net/de | default: 'cubic-bezier(0.455, 0.03, 0.515, 0.955)' |
| rewind | 如果幻灯片到达最后一个slide,下一次点击会使幻灯片回到开始的位置 | default: false |
回调函数
| 函数名称 | 描述 |
| beforeInit | 初始化前被执行(在第一次setup函数中) |
| afterInit | 初始化后被执行(在setup函数之后) |
| beforePrev | 再点击 prev 按钮之前被执行 |
| beforeNext | 再点击 next 按钮之前被执行 |
| beforeTouch | 在触摸尝试之前执行(touchstart) |
| beforeResize | 在每次 resize 事件之前被执行 |
浏览器兼容
- Chrome
- Safari
- FireFox
- Opera
- Internet Explorer 10+