aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartek Szopka <bartek.szopka+github@gmail.com>2012-01-17 22:32:30 +0100
committerBartek Szopka <bartek.szopka+github@gmail.com>2012-01-17 22:32:30 +0100
commitda84694fdb4ddaecb7921f0479f274f2b01ca746 (patch)
treeb6fa1ceefc58cda08f577548070e17ee259de702
parentd2ce96a1f34c84d9745b489129521054e3cdf6ea (diff)
downloadimpress.js-da84694fdb4ddaecb7921f0479f274f2b01ca746.tar.gz
impressive refactoring of slide selection - getting closer to API
-rw-r--r--js/impress.js29
1 files changed, 20 insertions, 9 deletions
diff --git a/js/impress.js b/js/impress.js
index b29c3fb..d451156 100644
--- a/js/impress.js
+++ b/js/impress.js
@@ -251,32 +251,43 @@
active = el;
return el;
- }
+ };
+
+ var selectNext = function () {
+ var next = active;
+ next = steps.indexOf( active ) - 1;
+ next = next >= 0 ? steps[ next ] : steps[ steps.length-1 ];
+
+ return select(next);
+ };
+
+ var selectPrev = function () {
+ var prev = active;
+ prev = steps.indexOf( active ) + 1;
+ prev = prev < steps.length ? steps[ prev ] : steps[ 0 ];
+
+ return select(prev);
+ };
// EVENTS
document.addEventListener("keydown", function ( event ) {
if ( event.keyCode == 9 || ( event.keyCode >= 32 && event.keyCode <= 34 ) || (event.keyCode >= 37 && event.keyCode <= 40) ) {
- var next = active;
switch( event.keyCode ) {
case 33: ; // pg up
case 37: ; // left
case 38: // up
- next = steps.indexOf( active ) - 1;
- next = next >= 0 ? steps[ next ] : steps[ steps.length-1 ];
+ selectNext();
break;
case 9: ; // tab
case 32: ; // space
case 34: ; // pg down
case 39: ; // right
case 40: // down
- next = steps.indexOf( active ) + 1;
- next = next < steps.length ? steps[ next ] : steps[ 0 ];
- break;
+ selectPrev();
+ break;
}
- select(next);
-
event.preventDefault();
}
}, false);