kaerus-component-slideshow 0.1.0 → 0.1.1
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: c42ee0299b0b413078cd14398439e471ee1abcfb
|
4
|
+
data.tar.gz: a5ce0e39c633e36f8b195b7e5609460a50e99766
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9d5b211e83f971527eea2da78c6f6f67376752c9b9d5908f463812322003a76efa315380e46830c1e6adbde7de9154ac80c6b0dd6e9b686754efa9f2ca148f3
|
7
|
+
data.tar.gz: 14c1bfd9c2dad67ded51cdd6ce773ddf9c9d38b3ecc86598781bdd3e6f88ab07dbc5cc4a66bb7ece3c78bfaa90c30d55b4ce2cc66867dd541e1991afa82467f2
|
@@ -645,7 +645,7 @@ function Slideshow(container,options){
|
|
645
645
|
Slideshow.prototype = {
|
646
646
|
init: function(container,options){
|
647
647
|
var settings = this.settings,
|
648
|
-
id = settings.id,
|
648
|
+
id = this.id = settings.id,
|
649
649
|
slides = '\n',
|
650
650
|
navItems = '\n',
|
651
651
|
navId = id + '-nav',
|
@@ -689,6 +689,8 @@ function Slideshow(container,options){
|
|
689
689
|
|
690
690
|
attachHandlers(this);
|
691
691
|
|
692
|
+
this.inTransition = false;
|
693
|
+
|
692
694
|
this.emit('init');
|
693
695
|
|
694
696
|
/* autostart on initialization */
|
@@ -717,26 +719,14 @@ function Slideshow(container,options){
|
|
717
719
|
return this;
|
718
720
|
},
|
719
721
|
next: function(){
|
720
|
-
|
721
|
-
|
722
|
-
if(!this.inTransition) {
|
723
|
-
this.carousel.next();
|
722
|
+
if(this.whenReady('next'));
|
724
723
|
this.emit('next');
|
725
|
-
} else this.once('transition-end',function(){
|
726
|
-
self.next();
|
727
|
-
});
|
728
724
|
|
729
725
|
return this;
|
730
726
|
},
|
731
727
|
prev: function(){
|
732
|
-
|
733
|
-
|
734
|
-
if(!this.inTransition) {
|
735
|
-
this.carousel.prev();
|
728
|
+
if(this.whenReady('prev'));
|
736
729
|
this.emit('prev');
|
737
|
-
} else this.once('transition-end',function(){
|
738
|
-
self.prev();
|
739
|
-
});
|
740
730
|
|
741
731
|
return this;
|
742
732
|
},
|
@@ -760,6 +750,28 @@ function Slideshow(container,options){
|
|
760
750
|
else slides.style.display = 'none';
|
761
751
|
|
762
752
|
return this;
|
753
|
+
},
|
754
|
+
whenReady: function(action){
|
755
|
+
var self = this, handlers, hasHandler;
|
756
|
+
|
757
|
+
if(!this.inTransition) {
|
758
|
+
this.carousel[action]();
|
759
|
+
return true;
|
760
|
+
} else {
|
761
|
+
handlers = this.listeners('transition-end');
|
762
|
+
for(var h in handlers){
|
763
|
+
if(handlers[h]._of && handlers[h]._of === self[action]){
|
764
|
+
hasHandler = true;
|
765
|
+
break;
|
766
|
+
}
|
767
|
+
}
|
768
|
+
|
769
|
+
if(!hasHandler){
|
770
|
+
this.once('transition-end', self[action]);
|
771
|
+
}
|
772
|
+
}
|
773
|
+
|
774
|
+
return false;
|
763
775
|
}
|
764
776
|
}
|
765
777
|
|
@@ -772,21 +784,24 @@ function Slideshow(container,options){
|
|
772
784
|
prev = document.getElementById(id+'-prev');
|
773
785
|
|
774
786
|
/* add slidshow UI handlers */
|
775
|
-
if(slideshow.settings.canPause)
|
776
|
-
addPauseHandler(slides, slideshow);
|
777
|
-
|
778
|
-
addNavHandler(nav,slideshow);
|
779
|
-
addTransitionHandler(nav, slides, slideshow);
|
780
|
-
|
781
787
|
addEvent(next,'click',function(event){
|
788
|
+
event = event ? event : window.event;
|
782
789
|
slideshow.next();
|
783
790
|
event.stopPropagation();
|
784
791
|
});
|
785
792
|
|
786
793
|
addEvent(prev,'click',function(event){
|
794
|
+
event = event ? event : window.event;
|
787
795
|
slideshow.prev();
|
788
796
|
event.stopPropagation();
|
789
797
|
});
|
798
|
+
|
799
|
+
if(slideshow.settings.canPause)
|
800
|
+
addPauseHandler(slides, slideshow);
|
801
|
+
|
802
|
+
addNavHandler(nav,slideshow);
|
803
|
+
|
804
|
+
addTransitionHandler(nav, slides, slideshow);
|
790
805
|
}
|
791
806
|
|
792
807
|
function applyStyle(elem,prop,attr){
|
@@ -853,11 +868,9 @@ function Slideshow(container,options){
|
|
853
868
|
var settings = slideshow.settings,
|
854
869
|
transition = settings.transition,
|
855
870
|
navItems = nav.getElementsByTagName('li'),
|
856
|
-
timer, durationProp,
|
871
|
+
timer, durationProp, s = 0,
|
857
872
|
ix, fx, lx = navItems.length, slide = [], node;
|
858
873
|
|
859
|
-
/* $('#objectID').css('-webkit-transition-duration');*/
|
860
|
-
|
861
874
|
durationProp = getStyleProperty('transition-duration',true);
|
862
875
|
|
863
876
|
for(var x in slides.childNodes){
|
@@ -872,36 +885,35 @@ function Slideshow(container,options){
|
|
872
885
|
ix = index % lx;
|
873
886
|
fx = from % lx;
|
874
887
|
|
875
|
-
slideshow.inTransition = true;
|
876
|
-
|
877
888
|
slideshow.emit('transition',slide[ix],ix);
|
878
889
|
|
879
890
|
if(from !== undefined){
|
891
|
+
slideshow.inTransition = true;
|
892
|
+
|
880
893
|
navItems[fx].className = "navItem";
|
881
894
|
// apply transitions after first slide to avoid animations on startup
|
882
895
|
if(!slideshow.hasTransitions){
|
883
896
|
applyTransitions(document.getElementById(settings.id + '-slides'));
|
884
897
|
slideshow.hasTransitions = true;
|
885
898
|
}
|
886
|
-
}
|
887
|
-
|
888
|
-
navItems[ix].className = "active navItem";
|
889
899
|
|
900
|
+
s = window.getComputedStyle(slide[ix],null).getPropertyValue(durationProp);
|
890
901
|
|
891
|
-
|
892
|
-
|
893
|
-
if(s.indexOf('s') > 0) s = parseInt(s,10) * 1000;
|
894
|
-
else s = parseInt(s,10);
|
902
|
+
if(s.indexOf('s') > 0) s = parseInt(s,10) * 1000;
|
903
|
+
else s = parseInt(s,10);
|
895
904
|
|
896
|
-
|
905
|
+
current = ix;
|
897
906
|
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
907
|
+
if(s){
|
908
|
+
/* note: workaround for problematic transition-end event */
|
909
|
+
timer = setTimeout(function(){
|
910
|
+
slideshow.inTransition = false;
|
911
|
+
slideshow.emit('transition-end',slide[current],current);
|
912
|
+
},s);
|
913
|
+
}
|
904
914
|
}
|
915
|
+
|
916
|
+
navItems[ix].className = "active navItem";
|
905
917
|
|
906
918
|
slideshow.carousel.transit(index,from);
|
907
919
|
}
|