diff options
author | Bartek Szopka <bartek.szopka+github@gmail.com> | 2012-01-17 22:32:30 +0100 |
---|---|---|
committer | Bartek Szopka <bartek.szopka+github@gmail.com> | 2012-01-17 22:32:30 +0100 |
commit | da84694fdb4ddaecb7921f0479f274f2b01ca746 (patch) | |
tree | b6fa1ceefc58cda08f577548070e17ee259de702 | |
parent | d2ce96a1f34c84d9745b489129521054e3cdf6ea (diff) | |
download | impress.js-da84694fdb4ddaecb7921f0479f274f2b01ca746.tar.gz |
impressive refactoring of slide selection - getting closer to API
-rw-r--r-- | js/impress.js | 29 |
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); |