Merge pull request #138 from pepelsbey/timing

Fixes #132 parsing issue for data-timing
This commit is contained in:
Slava Oliyanchuk 2013-05-10 08:10:40 -07:00
commit da1f95ea08
2 changed files with 17 additions and 12 deletions

View File

@ -179,7 +179,6 @@ 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);
}; };
shower.slideList = []; shower.slideList = [];
/** /**
@ -198,29 +197,35 @@ window.shower = window.shower || (function(window, document, undefined) {
progress = document.querySelector(progressSelector); progress = document.querySelector(progressSelector);
for (var i = 0; i < slides.length; i++) { for (var i = 0; i < slides.length; i++) {
// Slide IDs are optional. In case of missing ID we set it to the // Slide IDs are optional.
// slide number // In case of missing ID we set it to the slide number
if ( ! slides[i].id) { if ( ! slides[i].id) {
slides[i].id = i + 1; slides[i].id = i + 1;
} }
timing = shower._getData(slides[i], 'timing'); timing = shower._getData(slides[i], 'timing');
if (timing && timing.indexOf(':') !== -1) { // Parsing timing in [S] or [M:S] format
timing = timing.split(':'); // and returning it in milliseconds
// Compute number of milliseconds from format "mm:ss" if (timing && /^(\d{1,2}:)?\d{1,3}$/.test(timing)) {
timing = (parseInt(timing[0], 10) * 60 + parseInt(timing[1], 10)) * 1000; if (timing.indexOf(':') !== -1) {
timing = timing.split(':');
if (slides[i].querySelector('.next')) { timing = (parseInt(timing[0], 10) * 60 + parseInt(timing[1], 10)) * 1000;
timing = timing / (slides[i].querySelectorAll('.next').length + 1); } else {
timing = parseInt(timing, 10) * 1000;
} }
if (timing === 0) {
timing = false;
}
} else {
timing = false;
} }
shower.slideList.push(new Slide({ shower.slideList.push(new Slide({
id : slides[i].id, id : slides[i].id,
number : i, number : i,
hasInnerNavigation : null !== slides[i].querySelector('.next'), hasInnerNavigation : null !== slides[i].querySelector('.next'),
timing : parseInt(timing, 10) || undefined, timing : timing,
innerLength : slides[i].querySelectorAll('.next').length, innerLength : slides[i].querySelectorAll('.next').length,
innerComplete : 0 innerComplete : 0
})); }));

2
shower.min.js vendored

File diff suppressed because one or more lines are too long