First Commit
This commit is contained in:
1 parent
5eb9dd037d
commit
2e62c0e60b
11877 files changed
+2035312
No files matched your search
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
---
|
||||
|
||||
script: NivooSlider.js
|
||||
|
||||
description: A nice image slider for MooTools.
|
||||
|
||||
license: MIT-style license
|
||||
|
||||
authors:
|
||||
- Johannes Fischer
|
||||
|
||||
requires:
|
||||
- core/1.4: '*'
|
||||
|
||||
provides:
|
||||
- NivooSlider
|
||||
|
||||
...
|
||||
*/
|
||||
var NivooSlider=new Class({Implements:[Events,Options],caption:null,children:null,containerSize:0,count:0,currentSlide:0,currentImage:"",effects:{common:["fade"],horizontal:["foldDown","foldUp","sliceLeftUp","sliceLeftDown","sliceLeftRightDown","sliceLeftRightUp","sliceRightDown","sliceRightUp","wipeDown","wipeUp"],vertical:["foldLeft","foldRight","sliceDownLeft","sliceDownRight","sliceUpDownLeft","sliceUpDownRight","sliceUpLeft","sliceUpRight","wipeLeft","wipeRight"]},holder:null,hover:false,interval:null,isActive:true,orientation:"",paused:false,running:false,slices:null,sliceSize:null,totalSlides:0,options:{animSpeed:500,autoPlay:true,controlNav:true,controlNavItem:"disc",directionNav:true,directionNavHide:false,directionNavPosition:"inside",directionNavWidth:"20%",effect:"sliceDown",interval:3000,orientation:"vertical",pauseOnBlur:false,pauseOnHover:true,slices:15,preLoadImages:false},initialize:function(a,b){this.container=$(a);this.setOptions(b);this.orientation=this.getOrientation();this.effects.horizontal.combine(this.effects.common);this.effects.vertical.combine(this.effects.common);this.initSlider();this.createSlices();if(this.options.autoPlay){this.play();if(this.options.pauseOnBlur){window.addEvents({blur:function(){this.isActive=false;this.pause()}.bind(this),focus:function(){this.isActive=true;this.play()}.bind(this)})}}},animate:function(e,d,b){var a=e.retrieve("fxInstance"),c=b!==undefined&&b===true;a.start(d).chain(function(){this.count+=1;if(this.count===this.options.slices||c){this.running=false;this.finish();this.setBackgroundImage();this.count=0;if(this.currentSlide===(this.totalSlides-1)){this.lastSlide()}}}.bind(this))},arrangeSlices:function(){var b,a,d,c;this.slices.each(function(f,e){a={left:this.orientation==="vertical"?this.sliceSize.x*e:0,top:this.orientation==="horizontal"?this.sliceSize.y*e:0};if(this.orientation==="horizontal"){b=e===this.options.slices-1?this.containerSize.y-(this.sliceSize.y*e):this.sliceSize.y;c="100%";f.setStyles({height:b,top:a.top,width:c})}else{b=0;c=e===this.options.slices-1?this.containerSize.x-(this.sliceSize.x*e):this.sliceSize.x;f.setStyles({height:b,left:a.left,top:"",width:c})}f.store("fxInstance",new Fx.Morph(f,{duration:this.options.animSpeed})).store("coordinates",Object.merge(a,{height:b,width:c}))},this)},createCaption:function(){this.caption=new Element("p",{styles:{opacity:0}}).inject(this.holder);this.caption.store("fxInstance",new Fx.Morph(this.caption,{duration:200,wait:false}))},createControlNav:function(){var a="",c,b=1;this.container.addClass("got-control-nav");new Element("div.control-nav").inject(this.container);this.totalSlides.each(function(d){if(this.options.controlNavItem==="decimal"){c=b;b++}else{if(this.options.controlNavItem==="disc"){a="decimal";c="•"}else{c=this.options.controlNavItem}}new Element("a",{"class":a,events:{click:function(f){f.stop();this.slide(d)}.bind(this)},href:"#",html:c}).inject(this.container.getElement("div.control-nav"))},this);this.setCurrentControlItem()},createDirectionNav:function(){var a,d,b,e,c;e=this.options.directionNavPosition==="inside"?this.holder:this.container;c=this.options.directionNavWidth;a={height:this.containerSize.y};if(this.options.directionNavPosition==="inside"&&this.options.directionNavWidth.toInt()!==0){a.width=c}d=new Element("div.direction-nav-left",{styles:a}).inject(e);b=new Element("div.direction-nav-right",{styles:a}).inject(e);this.leftNav=new Element("a",{events:{click:function(f){f.stop();if(this.options.autoPlay){this.pause();if(!this.options.pauseOnHover){this.play()}}this.previous()}.bind(this)},href:"#",styles:{height:a.height}}).inject(d);this.rightNav=new Element("a",{events:{click:function(f){f.stop();if(this.options.autoPlay){this.pause();if(!this.options.pauseOnHover){this.play()}}this.next()}.bind(this)},href:"#",styles:{height:a.height}}).inject(b);if(this.options.directionNavHide&&this.options.directionNav){$$(this.leftNav,this.rightNav).setStyle("opacity",0);this.holder.addEvents({mouseout:function(){$$(this.leftNav,this.rightNav).fade(0)}.bind(this),mouseover:function(){$$(this.leftNav,this.rightNav).fade(1)}.bind(this)})}},createLinkHolder:function(){this.linkHolder=new Element("a.nivoo-link",{href:"#"}).inject(this.holder)},createSlices:function(){this.sliceSize={x:(this.containerSize.x/this.options.slices).round(),y:(this.containerSize.y/this.options.slices).round()};if(["fade","wipeLeft","wipeRight"].contains(this.options.effect)){this.options.slices=1}this.options.slices.each(function(a){new Element("div.nivoo-slice").inject(this.holder)},this);this.slices=this.getSlices();this.arrangeSlices()},getImages:function(){return this.holder.getElements("img")},getOrientation:function(){if(this.effects.horizontal.indexOf(this.options.effect)>-1){return"horizontal"}else{if(this.effects.vertical.indexOf(this.options.effect)>-1){return"vertical"}else{return this.options.orientation}}},getSlices:function(){return this.holder.getElements(".nivoo-slice")},Line truncated
|
||||
Reference in new issue
Block a user