iSlider,解决移动开发痛点的高性能滑块





5.00/5 (2投票s)
介绍一款性能卓越的移动优先滑块。
相关链接
- Github 页面:https://github.com/BE-FE/iSlider (包含英文 README)
- 官方页面:http://be-fe.github.io/iSlider/index_en.html
Content
滑块似乎是大多数网站中非常常见的组件。著名的解决方案包括 iScroll、Swiper 等项目。
乍一看,我认为没有必要制作类似的组件,这是一种浪费时间。直到有一天,我看到了 iSlider。我敢打赌,这可能是市场上最流畅的滑块组件。令我惊讶的是,在如此轻量级的框架中,它为开发人员提供了丰富的动画类型可供选择。我觉得这一定是一个有意义的项目,所以我决定加入并找到它为何有潜力超越 iScroll 和 Swiper 等同类产品的秘密和武器。
它的特点:
- 其出色性能的关键在于 iSlider 仅维护 3 个“li”,以尽可能缩小内存占用。因此,您在 iSlider 中永远不会遇到卡顿问题。
- 它是一个轻量级框架。压缩后约 2KB。
- 它支持图片和 DOM,这两种常见的 Webapp 元素。
- 它提供多种动画类型,您当然可以自己定制。
- 回调函数,例如 onslidestart、onslideend 等。
- 支持阻尼效果、垂直滑动和自动滑动。
目前,它有稳定的版本,但它仍然是一个快速增长的项目。或早或晚,更多的功能将被添加到该组件中。无论添加什么功能,我们都会牢记最佳性能是我们的目标。
我会让您了解一些未来的发展方向,它们将在未来一两周内发生。
- 图像加载器
- 放大和缩小
- 标签切换菜单
实际上,这不仅仅是一篇推荐文章,而是一篇招聘文章。我真诚地希望您能加入这个快速增长的项目并创造奇迹。
Using the Code
学习 iSlider 的最佳方式是查看演示。在存档中,您会找到一个演示文件夹。大多数脚本功能都在那里概述。 iSlider
是一个需要为每个 DOM 区域初始化的类。
在开始之前,您需要为 iSlider
准备一些数据
var data = [{
height: 300,
width: 414,
content: "imgs/1.jpg",
},{
height: 300,
width: 414,
content: "imgs/2.jpg",
},{
height: 300,
width: 414,
content: "imgs/3.jpg",
}];
您只需要准备的 HTML 结构是
<div id="iSlider-wrapper"></div>
要使其可运行,您只需初始化
<script type="text/javascript">
var islider = new iSlider({
dom : document.getElementById('iSlider-wrapper'),
data : data
});
</script>
如果您想添加更多效果或选项,您可以按照 demo/picture 中的演示操作
<script type="text/javascript">
var islider = new iSlider({
data: list,
dom: document.getElementById("iSlider-wrapper"),
isVertical: true,
isLooping: false,
isDebug: true,
isAutoplay: false,
animateType: 'rotate'
});
</script>
就是这样。
配置 iSlider
除了使用 iSlider 可以做的基本方式外,您还可以自定义我们提供的功能。例如,如果您更喜欢将 DOM 元素放在列表中,您可以像这样更改数据数组
var data = [{
'height' : '100%',
'width' : '100%',
'content' : '<div><h1>Home</h1>
<h2>This is home page</h2><p>home is pretty awesome</p><div>'
},{
'height' : '100%',
'width' : '100%',
'content' : '<div><h1>Page1</h1>
<h2>This is page1</h2><p>page1 is pretty awesome</p><div>'
},{
'height' : '100%',
'width' : '100%',
'content' : '<div><h1>Page2</h1>
<h2>This is Page2</h2><p>Page2 is pretty awesome</p><div>'
}];
如果您希望实现介绍部分中提到的效果,您可以
<script type="text/javascript">
var islider = new iSlider({
dom : document.getElementById('iSlider-wrapper'),
data : data,
duration: 2000,
isVertical: true,
isLooping: true,
isDebug: true,
isAutoplay: true
});
</script>
了解 iSlider
在这里,我清楚地描述了您可以操作的选项
选项 | 值 | 描述 |
dom | HTML 对象 | 包装图像列表的 DOM 元素 |
data | 内容数组(图片 | html) | 图片数据,例如 [{
height: 377,
width: 600,
content:"pics/1.jpg"
}]
|
type | 字符串 (pic | dom) | 默认值为 'pic',也支持 'dom' |
duration | 整数 (1000 == 1s) | 图像滑动的时间间隔。仅当 isAutoplay 为 true 时应用 |
animateType | 字符串 | 目前,支持 default、rotate、flip 和 depth 动画 |
onslide | 函数 | 当您的手指移动时调用的回调函数 |
onslidestart | 函数 | 当您的手指触摸屏幕时调用的回调函数 |
onslideend | 函数 | 当您的手指移出屏幕时调用的回调函数 |
onslidechange | 函数 | 当自动播放模式开启且一张图像滑动时调用的回调函数 |
isDebug | 布尔值 (true | false ) | 打开/关闭调试模式。将输出一些调试信息。 |
isLooping | 布尔值 (true | false ) | 打开/关闭无限循环模式 |
isAutoplay | 布尔值 (true | false ) | 打开/关闭自动播放模式 |
isVertical | 布尔值 (true | false ) | 垂直或水平滑动 |