kaerus-component-slideshow 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52b19604b6f001d260096edef9cd4148191fd590
|
4
|
+
data.tar.gz: 9e33c37a52f6256994861d2f393d1d14c364cb4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1953b19d35de7f8892f6895fb6e337a27bef589ea6a3cfba42686df68b9fef71811a5a3825cf1d1a358d7e897c1d4c177b5c5d52a2fe12b935866d3b0a96e4aa
|
7
|
+
data.tar.gz: 33c63a8f8b156900c584dc415c272409543bb9ab8d26ac827f0b8b5d4be6c9dc9baccb5da34993a325e0a3380226a1bbd74baaedab9f559c5c7401ef742f1e1e
|
@@ -644,11 +644,15 @@ function Slideshow(container,options){
|
|
644
644
|
(function(){
|
645
645
|
Slideshow.prototype = {
|
646
646
|
init: function(container,options){
|
647
|
-
var
|
647
|
+
var self = this,
|
648
|
+
settings = this.settings,
|
648
649
|
id = this.id = settings.id,
|
649
650
|
slides = '\n',
|
650
651
|
navItems = '\n',
|
651
652
|
navId = id + '-nav',
|
653
|
+
nextId = id + '-next',
|
654
|
+
prevId = id + '-prev',
|
655
|
+
slideId = id + '-slides',
|
652
656
|
childs = container.childNodes;
|
653
657
|
|
654
658
|
/* get slides from parent container */
|
@@ -683,21 +687,33 @@ function Slideshow(container,options){
|
|
683
687
|
settings.width = container.clientWidth;
|
684
688
|
|
685
689
|
/* create newcarousel instance */
|
686
|
-
this.carousel = new Carousel(
|
690
|
+
this.carousel = new Carousel(slideId);
|
687
691
|
|
688
692
|
this.slides = this.carousel.slides;
|
689
693
|
|
690
|
-
|
694
|
+
this.navId = '#' + navId;
|
691
695
|
|
692
|
-
this.
|
696
|
+
this.slideId = '#' + slideId;
|
697
|
+
|
698
|
+
this.nextId = '#' + nextId;
|
699
|
+
|
700
|
+
this.prevId = '#' + prevId;
|
693
701
|
|
694
|
-
|
702
|
+
transitionHandler(document.getElementById(navId),
|
703
|
+
document.getElementById(slideId),
|
704
|
+
this);
|
705
|
+
|
706
|
+
this.inTransition = false;
|
695
707
|
|
696
708
|
/* autostart on initialization */
|
697
709
|
if(this.settings.auto !== false){
|
698
710
|
this.start(this.settings.auto === true ? 0 : this.settings.auto);
|
699
711
|
}
|
700
712
|
|
713
|
+
setTimeout(function(){
|
714
|
+
self.emit('init');
|
715
|
+
}, 0 );
|
716
|
+
|
701
717
|
return this;
|
702
718
|
},
|
703
719
|
start: function(index){
|
@@ -737,9 +753,14 @@ function Slideshow(container,options){
|
|
737
753
|
return this;
|
738
754
|
},
|
739
755
|
show: function(x){
|
740
|
-
|
741
|
-
|
756
|
+
if(typeof x === 'string'){
|
757
|
+
x = x.match(/\d+$/)[0];
|
758
|
+
x = x ? parseInt(x,10) : 0;
|
759
|
+
}
|
742
760
|
|
761
|
+
if(this.whenReady('show',x));
|
762
|
+
this.emit('show',x);
|
763
|
+
|
743
764
|
return this;
|
744
765
|
},
|
745
766
|
display: function(value){
|
@@ -751,11 +772,11 @@ function Slideshow(container,options){
|
|
751
772
|
|
752
773
|
return this;
|
753
774
|
},
|
754
|
-
whenReady: function(action){
|
775
|
+
whenReady: function(action,value){
|
755
776
|
var self = this, handlers, hasHandler;
|
756
777
|
|
757
778
|
if(!this.inTransition) {
|
758
|
-
this.carousel[action]();
|
779
|
+
this.carousel[action](value);
|
759
780
|
return true;
|
760
781
|
} else {
|
761
782
|
handlers = this.listeners('transition-end');
|
@@ -767,7 +788,7 @@ function Slideshow(container,options){
|
|
767
788
|
}
|
768
789
|
|
769
790
|
if(!hasHandler){
|
770
|
-
this.once('transition-end', self[action]);
|
791
|
+
this.once('transition-end', self[action], value);
|
771
792
|
}
|
772
793
|
}
|
773
794
|
|
@@ -776,34 +797,6 @@ function Slideshow(container,options){
|
|
776
797
|
}
|
777
798
|
|
778
799
|
|
779
|
-
function attachHandlers(slideshow){
|
780
|
-
var id = slideshow.settings.id,
|
781
|
-
slides = document.getElementById(id+'-slides'),
|
782
|
-
nav = document.getElementById(id+'-nav'),
|
783
|
-
next = document.getElementById(id+'-next'),
|
784
|
-
prev = document.getElementById(id+'-prev');
|
785
|
-
|
786
|
-
/* add slidshow UI handlers */
|
787
|
-
addEvent(next,'click',function(event){
|
788
|
-
event = event ? event : window.event;
|
789
|
-
slideshow.next();
|
790
|
-
event.stopPropagation();
|
791
|
-
});
|
792
|
-
|
793
|
-
addEvent(prev,'click',function(event){
|
794
|
-
event = event ? event : window.event;
|
795
|
-
slideshow.prev();
|
796
|
-
event.stopPropagation();
|
797
|
-
});
|
798
|
-
|
799
|
-
if(slideshow.settings.canPause)
|
800
|
-
addPauseHandler(slides, slideshow);
|
801
|
-
|
802
|
-
addNavHandler(nav,slideshow);
|
803
|
-
|
804
|
-
addTransitionHandler(nav, slides, slideshow);
|
805
|
-
}
|
806
|
-
|
807
800
|
function applyStyle(elem,prop,attr){
|
808
801
|
var style = '';
|
809
802
|
|
@@ -837,36 +830,8 @@ function Slideshow(container,options){
|
|
837
830
|
elem.style[prop] = style;
|
838
831
|
}
|
839
832
|
|
840
|
-
function
|
841
|
-
var nav = document.getElementById(slideshow.settings.id+'-nav'),
|
842
|
-
matchNav = new RegExp(elem.id + '(\\d+)');
|
843
|
-
|
844
|
-
addEvent(elem,'click', function(event){
|
845
|
-
event = event ? event : window.event;
|
846
|
-
var target = event.target || event.srcElement,
|
847
|
-
ix = matchNav.exec(target.id);
|
848
|
-
|
849
|
-
if(ix) {
|
850
|
-
slideshow.show(ix[1]);
|
851
|
-
event.stopPropagation();
|
852
|
-
}
|
853
|
-
});
|
854
|
-
}
|
855
|
-
|
856
|
-
/* adds click handler on slide to toggle pause */
|
857
|
-
function addPauseHandler(elem,slideshow){
|
858
|
-
elem.addEventListener('click',function(event){
|
859
|
-
if(slideshow.paused) {
|
860
|
-
slideshow.resume();
|
861
|
-
} else {
|
862
|
-
slideshow.pause();
|
863
|
-
}
|
864
|
-
});
|
865
|
-
}
|
866
|
-
|
867
|
-
function addTransitionHandler(nav,slides,slideshow){
|
833
|
+
function transitionHandler(nav,slides,slideshow){
|
868
834
|
var settings = slideshow.settings,
|
869
|
-
transition = settings.transition,
|
870
835
|
navItems = nav.getElementsByTagName('li'),
|
871
836
|
timer, durationProp, s = 0,
|
872
837
|
ix, fx, lx = navItems.length, slide = [], node;
|
@@ -878,6 +843,8 @@ function Slideshow(container,options){
|
|
878
843
|
if(node && node.id && node.id.indexOf(settings.id + '-s') === 0)
|
879
844
|
slide[s++] = node;
|
880
845
|
}
|
846
|
+
|
847
|
+
applyStyle(slide,'transition',settings.transition);
|
881
848
|
|
882
849
|
slideshow.carousel.onChange = function(index,from){
|
883
850
|
var current;
|
@@ -891,11 +858,6 @@ function Slideshow(container,options){
|
|
891
858
|
slideshow.inTransition = true;
|
892
859
|
|
893
860
|
navItems[fx].className = "navItem";
|
894
|
-
// apply transitions after first slide to avoid animations on startup
|
895
|
-
if(!slideshow.hasTransitions){
|
896
|
-
applyTransitions(document.getElementById(settings.id + '-slides'));
|
897
|
-
slideshow.hasTransitions = true;
|
898
|
-
}
|
899
861
|
|
900
862
|
s = window.getComputedStyle(slide[ix],null).getPropertyValue(durationProp);
|
901
863
|
|
@@ -917,19 +879,6 @@ function Slideshow(container,options){
|
|
917
879
|
|
918
880
|
slideshow.carousel.transit(index,from);
|
919
881
|
}
|
920
|
-
|
921
|
-
function applyTransitions(container){
|
922
|
-
var childs = container.childNodes, elems = [];
|
923
|
-
|
924
|
-
for(var i = 0, l = childs.length; i < l; i++){
|
925
|
-
if(childs[i].nodeType === 1){
|
926
|
-
elems.push(childs[i]);
|
927
|
-
}
|
928
|
-
}
|
929
|
-
|
930
|
-
applyStyle(elems,'transition',transition);
|
931
|
-
}
|
932
|
-
|
933
882
|
}
|
934
883
|
|
935
884
|
function getStyleProperty(prop){
|
@@ -939,25 +888,6 @@ function Slideshow(container,options){
|
|
939
888
|
return prefixProp[prop];
|
940
889
|
}
|
941
890
|
|
942
|
-
function hasTransitionEndEvent(){
|
943
|
-
var transitionEndEvents = ['transitionend', 'webkitTransitionEnd', 'otransitionend'], e;
|
944
|
-
|
945
|
-
e = transitionEndEvents.filter(function(m){
|
946
|
-
return ('on'+m.toLowerCase()) in window
|
947
|
-
});
|
948
|
-
|
949
|
-
return e[0];
|
950
|
-
}
|
951
|
-
|
952
|
-
function addEvent(el,ev,fn,cap){
|
953
|
-
if(el.addEventListener){
|
954
|
-
el.addEventListener(ev, fn, !!cap);
|
955
|
-
} else if (el.attachEvent){
|
956
|
-
el.attachEvent('on' + ev, fn);
|
957
|
-
} else el['on' + ev] = fn;
|
958
|
-
|
959
|
-
return el;
|
960
|
-
}
|
961
891
|
}());
|
962
892
|
|
963
893
|
module.exports = Slideshow;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kaerus-component-slideshow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anders Elo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|