Add init API method to help with shower/shower#124

This commit is contained in:
Wichert Akkerman 2013-03-06 14:27:55 +01:00
parent e1b49a76b9
commit e1443282ac
1 changed files with 33 additions and 14 deletions

View File

@ -7,8 +7,8 @@ window.shower = window.shower || (function(window, document, undefined) {
var shower = {}, var shower = {},
url = window.location, url = window.location,
body = document.body, body = document.body,
slides = document.querySelectorAll('.slide'), slides = [],
progress = document.querySelector('div.progress div'), progress = [],
slideList = [], slideList = [],
timer, timer,
isHistoryApiSupported = !!(window.history && history.pushState), isHistoryApiSupported = !!(window.history && history.pushState),
@ -25,19 +25,36 @@ window.shower = window.shower || (function(window, document, undefined) {
return element.dataset ? element.dataset[name] : element.getAttribute('data-' + name); return element.dataset ? element.dataset[name] : element.getAttribute('data-' + name);
}; };
for (i = 0; i < l; i++) { /**
// Slide IDs are optional. In case of missing ID we set it to the * Init
// slide number * @param {String} slideSelector
if ( ! slides[i].id) { * @param {String} progressBarSelector
slides[i].id = i + 1; * @returns {Object} shower
*/
shower.init = function(slideSelector, progressSelector) {
slideSelector = slideSelector || '.slide';
progressSelector = progressSelector || 'div.progress div';
slides = document.querySelectorAll(slideSelector);
progress = document.querySelector(progressSelector);
slideList = [],
for (i = 0; i < l; i++) {
// Slide IDs are optional. In case of missing ID we set it to the
// slide number
if ( ! slides[i].id) {
slides[i].id = i + 1;
}
slideList.push({
id: slides[i].id,
hasInnerNavigation: null !== slides[i].querySelector('.next'),
hasTiming: (shower._getData(slides[i], 'timing') && shower._getData(slides[i], 'timing').indexOf(':') !== -1)
});
} }
slideList.push({ };
id: slides[i].id,
hasInnerNavigation: null !== slides[i].querySelector('.next'),
hasTiming: (shower._getData(slides[i], 'timing') && shower._getData(slides[i], 'timing').indexOf(':') !== -1)
});
}
/** /**
* Get slide scale value. * Get slide scale value.
@ -723,6 +740,8 @@ window.shower = window.shower || (function(window, document, undefined) {
} }
}, false); }, false);
shower.init();
return shower; return shower;
})(this, this.document); })(this, this.document);