这是一款炫酷的jQuery和css3全屏切开页面效果幻灯片插件。插件中使用了jQuery cond。jQuery cond是Ben Alman写的,它是一个“if-then-else”链式结构的jQuery插件。插件中那些可以动画的图标来自于Alan Carr。
HTML
包裹div给它一个class为sl-slide-wrapper
,每一个slide都带有class为sl-slide
。demo中有两种类型的导航按钮:箭头和圆点。
< div id = "slider" class = "sl-slider-wrapper" > < div class = "sl-slider" > < div class = "sl-slide bg-1" > < div class = "sl-slide-inner" > < div class = "deco" data-icon = "H" ></ div > < h2 >A bene placito</ h2 > < blockquote > < p >You have just dined...</ p > < cite >Ralph Waldo Emerson</ cite > </ blockquote > </ div > </ div > < div class = "sl-slide bg-2" > < div class = "sl-slide-inner" > < div class = "deco" data-icon = "q" ></ div > < h2 >Regula aurea</ h2 > < blockquote > < p >Until he extends the circle...</ p > < cite >Albert Schweitzer</ cite > </ blockquote > </ div > </ div > < div class = "sl-slide bg-2" > <!-- ... --> </ div > <!-- ... --> </ div > < nav id = "nav-arrows" class = "nav-arrows" > < span class = "nav-arrow-prev" >Previous</ span > < span class = "nav-arrow-next" >Next</ span > </ nav > < nav id = "nav-dots" class = "nav-dots" > < span class = "nav-dot-current" ></ span > < span ></ span > < span ></ span > < span ></ span > < span ></ span > </ nav > </ div > |
每一个slide都有一些自己的data-attributes,它们用于控制各自不同的效果,如旋转角度、缩放等等。下面列出所有的data-attributes:
data-orientation data-slice1-rotation data-slice2-rotation data-slice1-scale data-slice2-scale |
data-orientation可以设置为 “vertical” 或 “horizontal” 。data-slice1-rotation和data-slice2-rotation是设置旋转角度的。data-slice1-scale和data-slice2-scale用于设置缩放值。
所以,第一个slide的html结构如下:
< div class = "sl-slide" data-orientation = "horizontal" data-slice1-rotation = "-25" data-slice2-rotation = "-25" data-slice1-scale = "2" data-slice2-scale = "2" > |
上面的html结构是一个基本结构,为了能产生动画效果,我们需要使用javascript在运行时将结构改变为如下:
< div id = "slider" class = "sl-slider-wrapper" > < div class = "sl-slider" > < div class = "sl-slides-wrapper" > < div class = "sl-slide bg-1 sl-slide-horizontal" > < div class = "sl-content-wrapper" > < div class = "sl-content" > <!-- the content --> </ div > </ div > </ div > <!-- ... --> </ div > </ div > <!-- navs --> </ div > |
页面中的所有内容将被放到sl-slide-inner
中。
在这时候,当我们点击下一个幻灯片或前一个幻灯片时,我们将以当前的幻灯片的内容来做页面切割:
< div class = "sl-slide sl-slide-horizontal" > < div class = "sl-content-slice" > < div class = "sl-content-wrapper" > < div class = "sl-content" > <!-- ... --> </ div > </ div > </ div > < div class = "sl-content-slice" > < div class = "sl-content-wrapper" > < div class = "sl-content" > <!-- ... --> </ div > </ div > </ div > </ div > |
可用参数
下面是一些可用的参数:
$.Slitslider.defaults = { // transitions speed speed : 800, // if true the item's slices will also animate the opacity value optOpacity : false, // amount (%) to translate both slices - adjust as necessary translateFactor : 230, // maximum possible angle maxAngle : 25, // maximum possible scale maxScale : 2, // slideshow on / off(自动播放,默认关闭) autoplay : false, // keyboard navigation(键盘导航,默认开启) keyboard : true, // time between transitions interval : 4000, // callbacks onBeforeChange : function( slide, idx ) { return false; }, onAfterChange : function( slide, idx ) { return false; } }; |
CSS代码请参考下载文件。