LightboxGallery und Pfeile und Esc

Hallo liebe Gemeinde, auf meiner Homepage möchte ich eine photo-gallery mittels light Box einbinden. Dazu habe ich folgendes JS - schnipsel gefunden: Quelle: https://codepen.io/sidtheangel/pen/ONRKZa Das hat so weit auch ganz gut funktioniert. Weiters würde ich gerne noch 2 Funktionen hinzufügen. 1: der User soll sich mit dem Cursor - tasten (links & rechts) durch die Bilder „klicken“ können. 2: mit der ESC - tasten soll die light Box geschlossen werden. (so, als würde man auf das X klicken..) da ich allerdings keine Ahnung von JS habe und mal schwer vermute, irgendetwas im *.js file dafür verändern/hinzufügen zu müssen, wollte ich mich an euch wenden. danke schonmal für eure antworten! liebste grütze & ein fröhliches neues jahr wünschend, medhusa

Der hier verwendete Code

<ul> <li><a href="/image/10_big.jpg" data-imagelightbox="c"><img src="/image/10.jpg" alt="Countryside somewhere in Lithuania" /></a></li> <li><a href="/image/11_big.jpg" data-imagelightbox="c"><img src="/image/11.jpg" alt="Storm in Klaipeda" /></a></li> <li><a href="/image/12_big.jpg" data-imagelightbox="c"><img src="/image/12.jpg" alt="Sunset over Plateliai lake" /></a></li> </ul> <style> html { /* killing 300ms touch delay in IE */ -ms-touch-action: manipulation; touch-action: manipulation; } body { font-family: 'Fjalla One', sans-serif; color: #333; background-color: #efefef; } .is-hidden { display: none; } .btn { text-transform: uppercase; color: #efefef; background-color: #333; padding: 0.313em 0.625em; /* 5 10 */ } .btn:hover, .btn:focus { background-color: #c00; } .btn:active { background-color: #a00; } #container { width: 41.25em; /* 660 */ text-align: center; padding: 0 1.25em; /* 20 */ margin: 3.125em auto 6.25em; /* 50 100 */ } #container h1 { font-size: 2.125em; /* 34 */ line-height: 0.882em; /* 30 (34) */ text-transform: uppercase; } #container h1 span { font-size: 0.588em; /* 20 (34) */ line-height: 1em; /* 20 (20) */ color: #aaa; display: block; } #container h1 a:hover span, #container h1 a:focus span { color: #333; } #container h2 { border-top: 1px solid #ddd; padding-top: 1.875em; /* 30 */ margin-top: 1.875em; /* 30 */ margin-bottom: 0.625em; /* 10 */ } #container h2 span { color: #666; } #container h2[data-caption]:before { font-size: 0.875rem; font-weight: 300; color: #fff; background-color: #c00; display: inline-block; content: attr( data-caption ); padding: 0.125rem 0.313rem; /* 2 5 */ margin-right: 0.625rem; /* 10 */ -webkit-transform: rotate( -8deg ); -ms-transform: rotate( -8deg ); transform: rotate( -8deg ); } #container ul { } #container li { display: inline-block; margin: 0.625em; /* 10 */ } #container img { width: 8.75em; /* 140 */ height: 8.75em; /* 140 */ border-color: #eee; border: 0.625em solid rgba( 255, 255, 255, .5 ); /* 10 */ -webkit-box-shadow: 0 0 0.313em rgba( 0, 0, 0, .05 ); /* 5 */ box-shadow: 0 0 0.313em rgba( 0, 0, 0, .05 ); /* 5 */ -webkit-transition: -webkit-box-shadow .3s ease, border-color .3s ease; transition: box-shadow .3s ease, border-color .3s ease; } #container img:hover, #container img:focus { border-color: #fff; -webkit-box-shadow: 0 0 0.938em rgba( 0, 0, 0, .25 ); /* 15 */ box-shadow: 0 0 0.938em rgba( 0, 0, 0, .25 ); /* 15 */ } footer { font-size: 0.875em; /* 14 */ color: #aaa; border-top: 1px solid #ddd; padding-top: 2.143em; /* 30 (14) */ margin-top: 2.143em; /* 30 (14) */ } footer a { color: #666; } footer a:hover, footer a:focus { color: #333; } #imagelightbox{ cursor: pointer; position: fixed; z-index: 10000; touch-action: none; box-shadow: 0 0 3.125em rgba( 0, 0, 0, .75 ); /* 50 */ } #imagelightbox-loading, #imagelightbox-loading div { border-radius: 50%; } #imagelightbox-loading { width: 2.5em; /* 40 */ height: 2.5em; /* 40 */ background-color: #444; background-color: rgba( 0, 0, 0, .5 ); position: fixed; z-index: 10003; top: 50%; left: 50%; padding: 0.625em; /* 10 */ margin: -1.25em 0 0 -1.25em; /* 20 */ -webkit-box-shadow: 0 0 2.5em rgba( 0, 0, 0, .75 ); /* 40 */ box-shadow: 0 0 2.5em rgba( 0, 0, 0, .75 ); /* 40 */ } #imagelightbox-loading div { width: 1.25em; /* 20 */ height: 1.25em; /* 20 */ background-color: #fff; -webkit-animation: imagelightbox-loading .5s ease infinite; animation: imagelightbox-loading .5s ease infinite; } @-webkit-keyframes imagelightbox-loading { from { opacity: .5; -webkit-transform: scale( .75 ); } 50% { opacity: 1; -webkit-transform: scale( 1 ); } to { opacity: .5; -webkit-transform: scale( .75 ); } } @keyframes imagelightbox-loading { from { opacity: .5; transform: scale( .75 ); } 50% { opacity: 1; transform: scale( 1 ); } to { opacity: .5; transform: scale( .75 ); } } /* OVERLAY */ #imagelightbox-overlay { background-color: #fff; background-color: rgba( 255, 255, 255, .9 ); position: fixed; z-index: 9998; top: 0; right: 0; bottom: 0; left: 0; } /* "CLOSE" BUTTON */ #imagelightbox-close { width: 2.5em; /* 40 */ height: 2.5em; /* 40 */ text-align: left; background-color: #666; border-radius: 50%; position: fixed; z-index: 10002; top: 2.5em; /* 40 */ right: 2.5em; /* 40 */ -webkit-transition: color .3s ease; transition: color .3s ease; } #imagelightbox-close:hover, #imagelightbox-close:focus { background-color: #111; } #imagelightbox-close:before, #imagelightbox-close:after { width: 2px; background-color: #fff; content: ''; position: absolute; top: 20%; bottom: 20%; left: 50%; margin-left: -1px; } #imagelightbox-close:before { -webkit-transform: rotate( 45deg ); -ms-transform: rotate( 45deg ); transform: rotate( 45deg ); } #imagelightbox-close:after { -webkit-transform: rotate( -45deg ); -ms-transform: rotate( -45deg ); transform: rotate( -45deg ); } /* CAPTION */ #imagelightbox-caption { text-align: center; color: #fff; background-color: #666; position: fixed; z-index: 10001; left: 0; right: 0; bottom: 0; padding: 0.625em; /* 10 */ } /* NAVIGATION */ #imagelightbox-nav { background-color: #444; background-color: rgba( 0, 0, 0, .5 ); border-radius: 20px; position: fixed; z-index: 10001; left: 50%; bottom: 3.75em; /* 60 */ padding: 0.313em; /* 5 */ -webkit-transform: translateX( -50% ); -ms-transform: translateX( -50% ); transform: translateX( -50% ); } #imagelightbox-nav button { width: 1em; /* 20 */ height: 1em; /* 20 */ background-color: transparent; border: 1px solid #fff; border-radius: 50%; display: inline-block; margin: 0 0.313em; /* 5 */ } #imagelightbox-nav button.active { background-color: #fff; } /* ARROWS */ .imagelightbox-arrow { width: 3.75em; /* 60 */ height: 7.5em; /* 120 */ background-color: #444; background-color: rgba( 0, 0, 0, .5 ); vertical-align: middle; display: none; position: fixed; z-index: 10001; top: 50%; margin-top: -3.75em; /* 60 */ } .imagelightbox-arrow:hover, .imagelightbox-arrow:focus { background-color: rgba( 0, 0, 0, .75 ); } .imagelightbox-arrow:active { background-color: #111; } .imagelightbox-arrow-left { left: 2.5em; /* 40 */ } .imagelightbox-arrow-right { right: 2.5em; /* 40 */ } .imagelightbox-arrow:before { width: 0; height: 0; border: 1em solid transparent; content: ''; display: inline-block; margin-bottom: -0.125em; /* 2 */ } .imagelightbox-arrow-left:before { border-left: none; border-right-color: #fff; margin-left: -0.313em; /* 5 */ } .imagelightbox-arrow-right:before { border-right: none; border-left-color: #fff; margin-right: -0.313em; /* 5 */ } #imagelightbox-loading, #imagelightbox-overlay, #imagelightbox-close, #imagelightbox-caption, #imagelightbox-nav, .imagelightbox-arrow { -webkit-animation: fade-in .25s linear; animation: fade-in .25s linear; } @-webkit-keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } @media only screen and (max-width: 41.250em) /* 660 */ { #container { width: 100%; } #imagelightbox-close { top: 1.25em; /* 20 */ right: 1.25em; /* 20 */ } #imagelightbox-nav { bottom: 1.25em; /* 20 */ } .imagelightbox-arrow { width: 2.5em; /* 40 */ height: 3.75em; /* 60 */ margin-top: -2.75em; /* 30 */ } .imagelightbox-arrow-left { left: 1.25em; /* 20 */ } .imagelightbox-arrow-right { right: 1.25em; /* 20 */ } } @media only screen and (max-width: 20em) /* 320 */ { .imagelightbox-arrow-left { left: 0; } .imagelightbox-arrow-right { right: 0; } } </style> <script src="/js_webseite/jquery.js"></script> <script src="/js_webseite/imagelightbox.min.js"> </script> <script> $( function() { var // ACTIVITY INDICATOR activityIndicatorOn = function() { $( '<div id="imagelightbox-loading"><div></div></div>' ).appendTo( 'body' ); }, activityIndicatorOff = function() { $( '#imagelightbox-loading' ).remove(); }, // OVERLAY overlayOn = function() { $( '<div id="imagelightbox-overlay"></div>' ).appendTo( 'body' ); }, overlayOff = function() { $( '#imagelightbox-overlay' ).remove(); }, // CLOSE BUTTON closeButtonOn = function( instance ) { $( '<button type="button" id="imagelightbox-close" title="Close"></button>' ).appendTo( 'body' ).on( 'click touchend', function(){ $( this ).remove(); instance.quitImageLightbox(); return false; }); }, closeButtonOff = function() { $( '#imagelightbox-close' ).remove(); }, // CAPTION captionOn = function() { var description = $( 'a[href="' + $( '#imagelightbox' ).attr( 'src' ) + '"] img' ).attr( 'alt' ); if( description.length > 0 ) $( '<div id="imagelightbox-caption">' + description + '</div>' ).appendTo( 'body' ); }, captionOff = function() { $( '#imagelightbox-caption' ).remove(); }, // NAVIGATION navigationOn = function( instance, selector ) { var images = $( selector ); if( images.length ) { var nav = $( '<div id="imagelightbox-nav"></div>' ); for( var i = 0; i < images.length; i++ ) nav.append( '<button type="button"></button>' ); nav.appendTo( 'body' ); nav.on( 'click touchend', function(){ return false; }); var navItems = nav.find( 'button' ); navItems.on( 'click touchend', function() { var $this = $( this ); if( images.eq( $this.index() ).attr( 'href' ) != $( '#imagelightbox' ).attr( 'src' ) ) instance.switchImageLightbox( $this.index() ); navItems.removeClass( 'active' ); navItems.eq( $this.index() ).addClass( 'active' ); return false; }) .on( 'touchend', function(){ return false; }); } }, navigationUpdate = function( selector ) { var items = $( '#imagelightbox-nav button' ); items.removeClass( 'active' ); items.eq( $( selector ).filter( '[href="' + $( '#imagelightbox' ).attr( 'src' ) + '"]' ).index( selector ) ).addClass( 'active' ); }, navigationOff = function() { $( '#imagelightbox-nav' ).remove(); }, // ARROWS arrowsOn = function( instance, selector ) { var $arrows = $( '<button type="button" class="imagelightbox-arrow imagelightbox-arrow-left"></button><button type="button" class="imagelightbox-arrow imagelightbox-arrow-right"></button>' ); $arrows.appendTo( 'body' ); $arrows.on( 'click touchend', function( e ) { e.preventDefault(); var $this = $( this ), $target = $( selector + '[href="' + $( '#imagelightbox' ).attr( 'src' ) + '"]' ), index = $target.index( selector ); if( $this.hasClass( 'imagelightbox-arrow-left' ) ) { index = index - 1; if( !$( selector ).eq( index ).length ) index = $( selector ).length; } else { index = index + 1; if( !$( selector ).eq( index ).length ) index = 0; } instance.switchImageLightbox( index ); return false; }); }, arrowsOff = function() { $( '.imagelightbox-arrow' ).remove(); }; // WITH ACTIVITY INDICATION // WITH "CLOSE" BUTTON & ACTIVITY INDICATION var instanceC = $( 'a[data-imagelightbox="c"]' ).imageLightbox( { quitOnDocClick: false, onStart: function() { closeButtonOn( instanceC ); }, onEnd: function() { closeButtonOff(); activityIndicatorOff(); }, onLoadStart: function() { activityIndicatorOn(); }, onLoadEnd: function() { activityIndicatorOff(); } }); $( '.js--add-dynamic ' ).on( 'click', function( e ) { e.preventDefault(); var items = $( '.js--dynamic-items' ); instanceH.addToImageLightbox( items.find( 'a' ) ); $( '.js--dynamic-place' ).append( items.find( 'li' ).detach() ); $( this ).remove(); items.remove(); }); }); </script>