39 lines
992 B
JavaScript
39 lines
992 B
JavaScript
/*
|
|
* responsive-carousel keyboard extension
|
|
* https://github.com/filamentgroup/responsive-carousel
|
|
*
|
|
* Copyright (c) 2012 Filament Group, Inc.
|
|
* Licensed under the MIT, GPL licenses.
|
|
*/
|
|
|
|
(function($) {
|
|
var pluginName = "carousel",
|
|
initSelector = "." + pluginName,
|
|
navSelector = "." + pluginName + "-nav a",
|
|
buffer,
|
|
keyNav = function( e ) {
|
|
clearTimeout( buffer );
|
|
buffer = setTimeout(function() {
|
|
var $carousel = $( e.target ).closest( initSelector );
|
|
|
|
if( e.keyCode === 39 || e.keyCode === 40 ){
|
|
$carousel[ pluginName ]( "next" );
|
|
}
|
|
else if( e.keyCode === 37 || e.keyCode === 38 ){
|
|
$carousel[ pluginName ]( "prev" );
|
|
}
|
|
}, 200 );
|
|
|
|
if( 37 <= e.keyCode <= 40 ) {
|
|
e.preventDefault();
|
|
}
|
|
};
|
|
|
|
// Touch handling
|
|
$( document )
|
|
.on( "click", navSelector, function( e ) {
|
|
$( e.target )[ 0 ].focus();
|
|
})
|
|
.on( "keydown", navSelector, keyNav );
|
|
}(jQuery));
|