-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtslideshow.js
6 lines (6 loc) · 4.63 KB
/
tslideshow.js
1
2
3
4
5
6
/**
* tSlideshow - Tiny DHTML/Javascript Slideshow, v1.1
* Copyright 2011-2013 Mohsen Khahani
* http://mohsenkhahani.ir/tslideshow
*/
var tSlideshowOptions={pagination:true,subtitles:false,startIndex:1,interval:5,duration:15,effect:"fade"};function tSlideshow(b,c){var d=tSlideshowOptions,a,e;c=c||{};a=(typeof c.pagination==="undefined")?d.pagination:c.pagination;e=(typeof c.startIndex==="undefined")?d.startIndex:c.startIndex;this.subtitles=(typeof c.subtitles==="undefined")?d.subtitles:c.subtitles;this.duration=(typeof c.duration==="undefined")?d.duration:c.duration;this.interval=(typeof c.interval==="undefined")?d.interval:c.interval;this.effect=(typeof c.effect==="undefined")?d.effect:c.effect;this.timer=null;this.playing=false;this.reset=false;this.skips=0;this.init(b,a,e)}tSlideshow.prototype.init=function(e,a,d){var b=this,c;if(document.readyState!="complete"){setTimeout(function(){b.init(e,a,d)},100);return}this.slider=document.getElementById(e);this.slides=this.slider.children;this.count=this.slides.length;this.currIdx=(this.slides[d-1])?d-1:0;this.slider.style.height=this.slides[0].clientHeight+"px";if(this.subtitles){this.images=this.slider.getElementsByTagName("img");for(c=0;c<this.count;c++){this.images[c].alt=this.images[c].alt}this.overlay=document.createElement("div");this.overlay.className=this.slider.className+"-subtitle";this.slider.parentNode.appendChild(this.overlay);this.overlay.innerHTML=this.images[this.currIdx].alt}if(this.effect==="slide"){this.hiddenState=this.slider.clientWidth;this.visibleState=0}else{if(this.effect==="fade"){this.hiddenState=0;this.visibleState=1}}for(c=0;c<this.count;c++){this.slides[c].style.display="none";this.slides[c].style.position="absolute";this.setAttrib(this.slides[c],-this.hiddenState)}this.slides[this.currIdx].style.display="";this.setAttrib(this.slides[this.currIdx],this.visibleState);if(typeof a==="undefined"){a=tSlideshowOptions.pagination}if(a){this.pager=this.getPagination();this.pager.children[this.currIdx].className="current"}this.play();this.addHoverEvent(this.slider)};tSlideshow.prototype.play=function(){if(this.slider&&this.count>1&&!this.playing){var a=this;this.reset=true;this.timer=setTimeout(function(){a.next()},(a.interval*1000));this.playing=true}};tSlideshow.prototype.pause=function(){clearTimeout(this.timer);this.playing=false};tSlideshow.prototype.next=function(){var b=(this.currIdx===this.count-1)?0:this.currIdx+1,e=this.visibleState,d=this.hiddenState,c,a;if(this.skips){if(this.effect==="slide"&&this.skips<0){d=-d}b=this.currIdx+this.skips;this.skips=0}if(this.effect==="slide"){c=a=-d}else{if(this.effect==="fade"){c=-(a=e)}}if(this.pager){this.pager.children[this.currIdx].className="";this.pager.children[b].className="current"}this.reset=false;this.slides[b].style.display="";this.transform(this.slides[this.currIdx],e,c);this.transform(this.slides[b],d,a,true);this.currIdx=b;if(this.overlay){this.overlay.innerHTML=this.images[this.currIdx].alt}};tSlideshow.prototype.transform=function(i,b,c,g){var d=this.interval,f=this.duration,h=1,e=1,j=this;function a(k){if(j.reset){if(j.effect==="slide"){i.style.left=b-j.hiddenState+"px"}else{if(j.effect==="fade"){var l=j.visibleState-b;i.style.opacity=l;i.style.filter="alpha(opacity="+l*100+")"}}return}j.setAttrib(i,k);if(h<=f){e=h;k=-c*(e/=f)*(e-2)+b;setTimeout(function(){a(k)},30);h++}else{if(g&&j.playing){j.timer=setTimeout(function(){j.next()},d*1000)}else{if(!g){i.style.display="none"}}}}a(b)};tSlideshow.prototype.goToSlide=function(c){var b=c.id.replace(this.pager.id,""),a;if(b!=this.currIdx){a=this;this.reset=true;clearTimeout(this.timer);this.skips=b-this.currIdx;this.timer=setTimeout(function(){a.next()},50)}};tSlideshow.prototype.getPagination=function(){var c=document.createElement("div"),b,a;c.id=this.slider.id+"_pagination";c.className=this.slider.className+"-pagination";for(a=0;a<this.count;a++){b=document.createElement("span");b.id=c.id+a;b.innerHTML=" ";this.addClickEvent(b);c.appendChild(b)}this.slider.parentNode.appendChild(c);return c};tSlideshow.prototype.addClickEvent=function(b){var a=this;if(b.addEventListener){b.addEventListener("click",function(){a.goToSlide(b)},false)}else{b.attachEvent("onclick",function(){a.goToSlide(b)})}};tSlideshow.prototype.addHoverEvent=function(b){var a=this;if(b.addEventListener){b.addEventListener("mouseover",function(){a.pause()},false);b.addEventListener("mouseout",function(){a.play()},false)}else{b.attachEvent("onmouseover",function(){a.pause()});b.attachEvent("onmouseout",function(){a.play()})}};tSlideshow.prototype.setAttrib=function(a,b){switch(this.effect){case"slide":a.style.left=b+"px";break;case"fade":a.style.opacity=b;a.style.filter="alpha(opacity="+b*100+")";break}};