@@ -72,8 +72,12 @@ app.directive('slidescroll', ['$document', function($document) {
7272 var pos = toSlide * 100 ;
7373
7474 // Transform to position with ease transition animation
75+ $scope . viewFinderElement . css ( "transform" , "translate3d(0, -" + pos + "%, 0)" ) ;
76+ $scope . viewFinderElement . css ( "transition" , "all 800ms ease" ) ;
7577 $scope . viewFinderElement . css ( "-webkit-transform" , "translate3d(0, -" + pos + "%, 0)" ) ;
7678 $scope . viewFinderElement . css ( "-webkit-transition" , "all 800ms ease" ) ;
79+ $scope . viewFinderElement . css ( "-moz-transform" , "translate3d(0, -" + pos + "%, 0)" ) ;
80+ $scope . viewFinderElement . css ( "-moz-transition" , "all 800ms ease" ) ;
7781 } ;
7882
7983 this . addSlide = function ( slideScope , slideElement ) {
@@ -105,21 +109,26 @@ app.directive('slidescroll', ['$document', function($document) {
105109
106110 var inTransition = false ;
107111
108- scope . $on ( 'TransitionEvent' , function ( event , moveForward , numberSlides ) {
109- // Check arguments
110- if ( typeof moveForward !== 'boolean' ) {
111- return ;
112- }
113- if ( typeof numberSlides !== 'number' ) {
112+ scope . $on ( 'TransitionEvent' , function ( event , slideDelta ) {
113+ // Check argument
114+ slideDelta = parseInt ( slideDelta ) ;
115+ if ( typeof slideDelta !== 'number' ) {
114116 return ;
115117 }
116118
117119 // Move forward or backward by numberSlides
118- if ( moveForward ) {
119- controller . transformTo ( scope . currentSlideIndex + numberSlides ) ;
120- } else {
121- controller . transformTo ( scope . currentSlideIndex - numberSlides ) ;
120+ controller . transformTo ( scope . currentSlideIndex + slideDelta ) ;
121+ } ) ;
122+
123+ scope . $on ( 'TransitionToEvent' , function ( event , slideIndex ) {
124+ // Check slideIndex argument
125+ slideIndex = parseInt ( slideIndex ) ;
126+ if ( typeof slideIndex !== 'number' ) {
127+ return ;
122128 }
129+
130+ // Move controller to slideIndex
131+ controller . transformTo ( slideIndex ) ;
123132 } ) ;
124133
125134 // Bind keyboard events
@@ -132,37 +141,40 @@ app.directive('slidescroll', ['$document', function($document) {
132141
133142 // Determine transition info
134143 var moveForward = true ;
135- var numberSlides = 0 ;
144+ var slideDelta = 0 ;
136145
137146 switch ( event . which ) {
138- case 34 : // Page down
147+ case 33 : // Page up
139148 case 38 : // Up key
140149
141- moveForward = false ;
142- numberSlides = 1 ;
150+ slideDelta = - 1 ;
143151 break ;
144152
145- case 33 : // Page up
153+ case 34 : // Page down
146154 case 32 : // Spacebar
147155 case 40 : // Down arrow
148156
149- moveForward = true ;
150- numberSlides = 1 ;
157+ slideDelta = 1 ;
151158 break ;
152159
153160 case 36 : // Home key
154161
155162 // Roll backward by the number of slides of the current slide index
156- moveForward = false ;
157- numberSlides = scope . currentSlideIndex ;
163+ slideDelta = scope . currentSlideIndex ;
164+ break ;
165+
166+ case 35 : // End key
167+
168+ // Roll forward by the number of slides of the current slide index
169+ slideDelta = ( scope . numSlides - scope . currentSlideIndex ) - 1 ;
158170 break ;
159171
160172 default :
161173 return ;
162174 }
163175
164176 // Fire transition event to move
165- scope . $emit ( 'TransitionEvent' , moveForward , numberSlides ) ;
177+ scope . $emit ( 'TransitionEvent' , slideDelta ) ;
166178
167179 } ) ;
168180
@@ -175,13 +187,12 @@ app.directive('slidescroll', ['$document', function($document) {
175187 if ( ! scope . inTransition && ! scope . quietPeriod ) {
176188
177189 // Determine if we're going forward or backward
178- var moveForward = true ;
179190 if ( event . wheelDelta > 0 ) {
180- moveForward = false ;
191+ scope . $emit ( 'TransitionEvent' , - 1 ) ;
192+ } else {
193+ scope . $emit ( 'TransitionEvent' , 1 ) ;
181194 }
182195
183- scope . $emit ( 'TransitionEvent' , moveForward , 1 ) ;
184-
185196 }
186197
187198 } ) ;
@@ -211,17 +222,12 @@ app.directive('slide', function() {
211222 element . on ( '$destroy' , function ( ) {
212223 slidescrollController . removeSlide ( scope . slideNum )
213224 } ) ;
214-
215- element . css ( 'background' , 'url(' + scope . backgroundImage + ')' ) ;
216225 }
217226
218227 return {
219228 require : "^slidescroll" ,
220229 transclude : true ,
221230 link : link ,
222- scope : {
223- backgroundImage : '=ssBackgroundImage'
224- } ,
225231 template : "<div ng-transclude></div>"
226232 }
227233
0 commit comments