summaryrefslogtreecommitdiffstats
path: root/js/page-dots.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/page-dots.js')
-rw-r--r--js/page-dots.js61
1 files changed, 30 insertions, 31 deletions
diff --git a/js/page-dots.js b/js/page-dots.js
index d604dfd..90b7210 100644
--- a/js/page-dots.js
+++ b/js/page-dots.js
@@ -1,22 +1,20 @@
+// page dots
( function( window, factory ) {
- 'use strict';
// universal module definition
-
+ /* jshint strict: false */
if ( typeof define == 'function' && define.amd ) {
// AMD
define( [
- 'eventie/eventie',
'./flickity',
'tap-listener/tap-listener',
'fizzy-ui-utils/utils'
- ], function( eventie, Flickity, TapListener, utils ) {
- return factory( window, eventie, Flickity, TapListener, utils );
+ ], function( Flickity, TapListener, utils ) {
+ return factory( window, Flickity, TapListener, utils );
});
- } else if ( typeof exports == 'object' ) {
+ } else if ( typeof module == 'object' && module.exports ) {
// CommonJS
module.exports = factory(
window,
- require('eventie'),
require('./flickity'),
require('tap-listener'),
require('fizzy-ui-utils')
@@ -25,14 +23,13 @@
// browser global
factory(
window,
- window.eventie,
window.Flickity,
window.TapListener,
window.fizzyUIUtils
);
}
-}( window, function factory( window, eventie, Flickity, TapListener, utils ) {
+}( window, function factory( window, Flickity, TapListener, utils ) {
// -------------------------- PageDots -------------------------- //
@@ -49,21 +46,11 @@ PageDots.prototype._create = function() {
// create holder element
this.holder = document.createElement('ol');
this.holder.className = 'flickity-page-dots';
- Flickity.setUnselectable( this.holder );
// create dots, array of elements
this.dots = [];
- // update on select
- var _this = this;
- this.onCellSelect = function() {
- _this.updateSelected();
- };
- this.parent.on( 'cellSelect', this.onCellSelect );
// tap
this.on( 'tap', this.onTap );
- // pointerDown
- this.on( 'pointerDown', function onPointerDown( button, event ) {
- _this.parent.childUIPointerDown( event );
- });
+
};
PageDots.prototype.activate = function() {
@@ -80,8 +67,8 @@ PageDots.prototype.deactivate = function() {
};
PageDots.prototype.setDots = function() {
- // get difference between number of cells and number of dots
- var delta = this.parent.cells.length - this.dots.length;
+ // get difference between number of slides and number of dots
+ var delta = this.parent.slides.length - this.dots.length;
if ( delta > 0 ) {
this.addDots( delta );
} else if ( delta < 0 ) {
@@ -107,10 +94,9 @@ PageDots.prototype.removeDots = function( count ) {
// remove from this.dots collection
var removeDots = this.dots.splice( this.dots.length - count, count );
// remove from DOM
- for ( var i=0, len = removeDots.length; i < len; i++ ) {
- var dot = removeDots[i];
+ removeDots.forEach( function( dot ) {
this.holder.removeChild( dot );
- }
+ }, this );
};
PageDots.prototype.updateSelected = function() {
@@ -134,7 +120,7 @@ PageDots.prototype.onTap = function( event ) {
}
this.parent.uiChange();
- var index = utils.indexOf( this.dots, target );
+ var index = this.dots.indexOf( target );
this.parent.select( index );
};
@@ -152,25 +138,38 @@ utils.extend( Flickity.defaults, {
Flickity.createMethods.push('_createPageDots');
-Flickity.prototype._createPageDots = function() {
+var proto = Flickity.prototype;
+
+proto._createPageDots = function() {
if ( !this.options.pageDots ) {
return;
}
this.pageDots = new PageDots( this );
+ // events
this.on( 'activate', this.activatePageDots );
- this.on( 'cellAddedRemoved', this.onCellAddedRemovedPageDots );
+ this.on( 'select', this.updateSelectedPageDots );
+ this.on( 'cellChange', this.updatePageDots );
+ this.on( 'resize', this.updatePageDots );
this.on( 'deactivate', this.deactivatePageDots );
+
+ this.pageDots.on( 'pointerDown', function( button, event ) {
+ this.childUIPointerDown( event );
+ }.bind( this ));
};
-Flickity.prototype.activatePageDots = function() {
+proto.activatePageDots = function() {
this.pageDots.activate();
};
-Flickity.prototype.onCellAddedRemovedPageDots = function() {
+proto.updateSelectedPageDots = function() {
+ this.pageDots.updateSelected();
+};
+
+proto.updatePageDots = function() {
this.pageDots.setDots();
};
-Flickity.prototype.deactivatePageDots = function() {
+proto.deactivatePageDots = function() {
this.pageDots.deactivate();
};