-
Unslider是一个超小的
jQuery轮播插件。<!-- The barebones HTML required for Unslider --> <div class="banner"> <ul><li>This is my slider.</li><li>Pretty cool, huh?</li></ul> </div> <!-- And the relevant JavaScript --> <script src="//code.jquery.com/jquery-2.1.4.min.js"></script> <script src="/path/to/unslider.js"></script> <!-- but with the right path! --> <script>$(function() { $('.banner').unslider() })</script>
想要使用Unslider开始你的项目,下载Unslider仓库即可:
下载 (版本 2.0, 5.6kb)想要更多的个性化和文档?试试上边(或下边)的导航吧,它也是Unslider的一个demo。其实整个完整都是Unslider的demo!
-
默认用法
自动播放
自动播放,并带有淡入效果
人为控制
无限轮播
-
-
准备HTML代码。
Unslider可以使用一个HTML元素将任何东西都包裹进去,将所有的幻灯片都放到一个 无序列表 里。
你可以在每个幻灯片里面添加任何你想添加的东西。举个栗子:
<div class="my-slider"> <ul> <li>My slide</li> <li>Another slide</li> <li>My last slide</li> </ul> </div>
-
引入jQuery和Unslider。
在
</body>
闭合前添加jQuery和Unslider,就像下面那样,但是请注意:- 确保jQuery是先于Unslider引入的!否则会报错。
- 确保Unslider的路径正确。否则,Unslider将不能运行。
<!-- There'll be a load of other stuff here --> <script src="//code.jquery.com/jquery-2.1.4.min.js"></script> <script src="/path/to/unslider.js"></script> <!-- but with the right path! --> </body>
-
引入Unslider样式。
为了较好的展示出来,Unslider需要应用一些样式。你可以通过链接
dist/css/unslider.css
文件来添加。如果也需要点(dot)的样式,可以链接dist/css/unslider-dots.css
文件。注意 默认情况下,点的样式是白色的。你可以通过编译LESS文件和修改
variables.less
文件或手动修改#fff
来改变颜色。<link rel="stylesheet" href="/path/to/unslider/dist/css/unslider.css">
-
告诉Unslider要轮播的元素。
现在我们已经离成功不远了!我们需要做的就是:在外部JavaScript文件(如果有的话)或直接在HTML中(那种方式都无所谓!)告诉Unslider我们想要轮播的元素。
因为我们我们给轮播添加了一个类名为
my-slider
的HTML元素,所以我们可以使用$('.my-slider')
来选中。<script src="//code.jquery.com/jquery-2.1.4.min.js"></script> <script src="/path/to/unslider.js"></script> <script> jQuery(document).ready(function($) { $('.my-slider').unslider(); }); </script> </body>
你可以添加任意多个幻灯片,并配合使用相应的 方法或选项 来调整你的幻灯片。
-
-
扩展Unslider
Unslider很小,但是很灵活且可扩展:你可以通过 选项/设置、方法或回调 来修改很多东西,这些东西会在下文中提到。
Automatic support
Unslider automatically supports a few different scripts, provided the
<script>
tag is referenced before Unslider.- Right-to-left (RTL) 支持
-
添加
dir="rtl"
Unslider将会改变轮播方向<div class="my-slider" dir="rtl"></div>
- Velocity.js 访问站点
-
一个使jQuery
.animate()
运行更快的插件。如果你的轮播运行的有些不流畅,强烈建议添加Velocity,因为Velocity能使动画效果显著提高。<script src="//cdn.jsdelivr.net/velocity/1.2.3/velocity.min.js"></script>
- jquery.swipe.js 访问站点
-
为你的轮播提供移动设备和桌面设备的滑动支持。查看下面的
initSwipe
和destroySwipe
方法来了解它的运行机制。<script src="//stephband.info/jquery.event.move/js/jquery.event.move.js"></script> <script src="//stephband.info/jquery.event.swipe/js/jquery.event.swipe.js"></script>
方法
Unslider有大量方法供你使用来控制轮播,你可以通过两种方式来使用这些方法,如下所示。
// 假设我们设置了一个这样的变量... var slider = $('.my-demo-slider').unslider(); // 方法 1 slider.data('unslider').methodName(); slider.data('unslider').methodName('arguments', 'go', 'here'); // 方法 2 (速记法) slider.unslider('methodName'); slider.unslider('methodName:arguments,go,here');
- init args:
options
- Set everything up with the slider. This is called automatically when you set up
.unslider()
for the first time, but if there's layout problems or you want to re-initiate the slider for some reason, you can call it here. Theoptions
variable is an object (see below). You can't call options with the shorthand.unslider('init')
method. - calculateSlides
- 如果添加或删除了一个滑块,则应该调用该方法,否则可能会出现异常。
var slider = $('.my-slider').unslider(); // 看最后一个幻灯不顺眼,把它移除掉 slider.find('li:last').remove(); // 重新计算Unslider slider.unslider('calculateSlides');
- start
- 是每个滑块在幻灯片之间移动。可以设置 选项对象 来确定滑块移动的延时。
- stop
- 停止滑块移动。自动播放也会停止。
- destroyKeys
- 移除键盘控制。
- initKeys
- 添加键盘按键支持。可以用在
destroyKeys
之后来重新设置键盘支持,或者在设置对象中设置{keys: false}
以备之后开启键盘支持。 - initSwipe
- Set up swipe functionality manually (比如,你想延迟加载)。 You can add it automatically by including jquery.event.move and jquery.event.swipe in your code. 如果你需要在页面加载之后添加,则可以像这样调用 initSwipe:
$('.sliderman').unslider(); // 假设因为某个原因我们使用 $.getScript 来加载脚本 var scripts = [ 'http://stephband.info/jquery.event.move/js/jquery.event.move.js', 'http://stephband.info/jquery.event.swipe/js/jquery.event.swipe.js' ]; $.getScript(scripts[0]); // 一旦加载了脚本,就可以初始化Unslider添加滑动支持 $.getScript(scripts[1], function() { $('.sliderman').unslider('initSwipe'); });
- destroySwipe
- 移除swipe支持。Does what it says on the tin.
- setIndex args:
to
-
为Unslider设置当前索引和导航。这并不会移除slider! 如果你想将slider移动到某个特定的滑块,使用该方法可能会得到一些糟糕的结果,我推荐你使用
animate()
来实现。参数
to
是你想移动到的索引(记住:索引从0开始),如果你不知道总共有多少个滑块,可以使用字符串'first'
或者'last'
。 - animate args:
to
,dir
-
Move the slider to a specific slide, update any navigation and fire a
unslider.change
event. Use like so:// Our trusty slider! var slider = $('.slider').unslider(); // 移动到第一个滑块 slider.unslider('animate:first'); // 移动到第三个滑块 // 请注意,滑块索引是从0开始,即0是第一个滑块,1是第二个滑块,以此类推。 slider.unslider('animate:2'); // 移动到最后一个滑块 slider.unslider('animate:last'); // 移动到最后一个滑块,并添加方向导航 slider.unslider('animate:last,prev');
参数
to
是必选项, 是你想移动到的索引(记住:索引从0开始),如果你不知道总共有多少个滑块,可以使用字符串'first'
或者'last'
。参数
dir
是可选项, 可以是字符串'prev'
或者'next'
。This doesn't do anything, yet. - next
- 手动移动到下一个滑块(如果现在是最后一个滑块,则移动到第一个滑块)
- prev
- 除了移动方向相反,其他的和
.unslider('next')
相同。 Moves the slider backwards manually or to the last slide if there's no more behind it.
事件
Unslider提供了事件监听器,也许这会在某些方面给我们提供一些便利。
// 设置轮播自动播放,滑动时间间隔为1s,这样有利于我们观察 var slider = $('.slider').unslider({ autoplay: true, delay: 1000 }); // When the slider has been set up, fire the event off. slider.on('unslider.ready', function() { alert('Slider is set up!'); }); // 监听滑动变化事件 slider.on('unslider.change', function(event, index, slide) { alert('Slide has been changed to ' + index); });
选项
Unslider使用的是标准的jQuery插件选项对象,它看起来像下面高亮的例子:
$('.my-demo-slider').unslider({ settingName: settingValue, anotherSetting: anotherValue });
这些选项如果不设置的话,Unslider会使用下表所示的高亮默认值。
- autoplay default:
false
- 是否自动播放?
- speed default:
750
- 滑块速度(单位:ms)。
- delay default:
3000
- 如果
autoplay
设置为true,则该选项为两个滑块滑动的时间间隔(单位:ms)。 - index default:
'first'
- 如果设置为整数、
'first'
或'last'
,轮播滑块的默认索引将变为该设置项的值,而不是第一个滑块。 - keys default:
true
- 想为Unslider添加键盘按键支持么?可以通过设置
true
、false
,或一个 options/keycode 对象来实现,就像这样:keys: { prev: 37, next: 39, stop: 27 // 例子:按下 Esc 暂停 }
这将有利于你扩展Unslider的内置函数。 - nav default:
true
-
Do you want to generate an automatic clickable navigation for each slide in your slider?
You can over-ride what appears in each link by adding a
data-nav="nav title"
parameter to each slide element (replacing 'nav title' with whatever you'd like the title to be).If you want to add dot-navigation to a slide, simply include
unslider-dots.css
to your CSS file.New You can also provide a function to calculate the slide label:
nav: function(index, label) { // $(this)是当前滑块 // label是当前的label // index是从0开始的滑块索引 // On the third slide, append " third slide!" if(index === 2) { return label + ' third slide!'; } // 只显示数字 return index + 1; }
- arrows default:
true
-
想为轮播添加 左/右 箭头么?You can style these in your CSS by writing rules for
.unslider-arrow
(or alternatively you can change the HTML string to whatever you like and style that).该选项可以设置为
true
或false
,或者是一个对象。如果设置为一个对象,则默认的设置会被覆盖。默认的对象是这个样子的:arrows: { // Unslider默认行为 prev: '<a class="unslider-arrow prev">Previous slide</a>', next: '<a class="unslider-arrow next">Next slide</a>', // 例子:生成 start/stop 按钮来控制自动播放 stop: '<a class="unslider-pause" />', start: '<a class="unslider-play">Play</a>' }
该选项可能会产生一些误解,你可以设置成生成任何东西,而不仅仅是箭头。
- animation default:
'horizontal'
- 滑块在滑动过程中展现什么动画呢?目前有三种动画类型:
'horizontal'
, 从左到右滑动'vertical'
, 从上到下滑动'fade'
, 交叉淡入淡出
- selectors
-
If you're not using an unordered list to display your slider, you'll need to add a
selectors
object referencing what elements Unslider should look for. The container should be the "conveyor belt" that gets moved, and the slides are - well - the slides.selectors: { container: 'ul:first', slides: 'li' }
Note: you'll probably also need to update/write custom CSS in order for Unslider to work. Check the source files for
unslider.less
to get a better idea of what needs styling. - animateHeight default:
false
- Should Unslider animate the height of the container to match the current slide's height? If so, set to
true
. - activeClass default:
'unslider-active'
- Unslider为活动的滑块设置的类。你可以设置该选项来匹配自己的样式。
-
下载Unslider
可以通过Github来获取最新版本的开源的Unsider。任何链接都可能会过期,所以请确保下载最新的版本!
Download unslider.min.js, 5.6kb 在Github上查看提问和贡献代码
遇到了什么问题? 如何贡献代码? 和Unslider交流