javascript - How can I close an overlay panel with the escape key -
i'm stuck trying close overlay panel pressing escape key.
i added cross button closes panel, need easier pressing "escape" key on keyboard.
html
<html> <head> <meta charset="utf-8" /> <title> business development </title> </head> <body> <div class="overlay overlay-contentpush"> <button type="button" class="overlay-close">close</button> </div> </body> </html> javascript
(function() { var container = document.queryselector( 'div.container' ), triggerbttn = document.getelementbyid( 'trigger-overlay' ), overlay = document.queryselector( 'div.overlay' ), closebttn = overlay.queryselector( 'button.overlay-close' ); transendeventnames = { 'webkittransition': 'webkittransitionend', 'moztransition': 'transitionend', 'otransition': 'otransitionend', 'mstransition': 'mstransitionend', 'transition': 'transitionend' }, transendeventname = transendeventnames[ modernizr.prefixed( 'transition' ) ], support = { transitions : modernizr.csstransitions }; function toggleoverlay() { if( classie.has( overlay, 'open' ) ) { classie.remove( overlay, 'open' ); classie.remove( container, 'overlay-open' ); classie.add( overlay, 'close' ); var onendtransitionfn = function( ev ) { if( support.transitions ) { if( ev.propertyname !== 'visibility' ) return; this.removeeventlistener( transendeventname, onendtransitionfn ); } classie.remove( overlay, 'close' ); }; if( support.transitions ) { overlay.addeventlistener( transendeventname, onendtransitionfn ); } else { onendtransitionfn(); } } else if( !classie.has( overlay, 'close' ) ) { classie.add( overlay, 'open' ); classie.add( container, 'overlay-open' ); } } triggerbttn.addeventlistener( 'click', toggleoverlay ); closebttn.addeventlistener( 'click', toggleoverlay ); })();
$(document).bind('keydown',function(e){ if ( e.which == 27 ) { console.log("escape key!"); // attach event here. }; });
Comments
Post a Comment