65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2014年11月8日

MIT

3分钟阅读

viewsIcon

13291

介绍一款性能卓越的移动优先滑块。

Demo

相关链接

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) 图像滑动的时间间隔。仅当 isAutoplaytrue 时应用
animateType 字符串 目前,支持 default、rotate、flip 和 depth 动画
onslide 函数 当您的手指移动时调用的回调函数
onslidestart 函数 当您的手指触摸屏幕时调用的回调函数
onslideend 函数 当您的手指移出屏幕时调用的回调函数
onslidechange 函数 当自动播放模式开启且一张图像滑动时调用的回调函数
isDebug 布尔值 (true | false) 打开/关闭调试模式。将输出一些调试信息。
isLooping 布尔值 (true | false) 打开/关闭无限循环模式
isAutoplay 布尔值 (true | false) 打开/关闭自动播放模式
isVertical 布尔值 (true | false) 垂直或水平滑动
© . All rights reserved.