From 974887eb1f4538993cef7e998b447276912124ed Mon Sep 17 00:00:00 2001 From: T Date: Tue, 2 Jun 2026 02:21:42 +0200 Subject: [PATCH] Fix elevator --- blog/index.html | 6 ++---- blog/repaircafe.html | 5 ++--- js/elevator.js | 41 +++++++++++++++++++++++++++++------------ 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/blog/index.html b/blog/index.html index 5824f446..15c3e00e 100644 --- a/blog/index.html +++ b/blog/index.html @@ -31,18 +31,16 @@ layout: default
- +{% endfor %} -{% endfor %}
+{% endfor %} -{% endfor %} diff --git a/js/elevator.js b/js/elevator.js index ba8364f8..5fc06477 100644 --- a/js/elevator.js +++ b/js/elevator.js @@ -27,6 +27,10 @@ var Elevator = function(options) { var mainAudio; var endAudio; + var mainAudioPath; + var endAudioPath; + var preloadAudio; + var loopAudio; var that = this; @@ -112,6 +116,8 @@ var Elevator = function(options) { requestAnimationFrame( animateLoop ); + loadAudio(); + // Start music! if( mainAudio ) { mainAudio.play(); @@ -173,6 +179,19 @@ var Elevator = function(options) { } } + function loadAudio() { + if( !mainAudio && mainAudioPath ) { + mainAudio = new Audio( mainAudioPath ); + mainAudio.setAttribute( 'preload', preloadAudio ); + mainAudio.setAttribute( 'loop', loopAudio ); + } + + if( !endAudio && endAudioPath ) { + endAudio = new Audio( endAudioPath ); + endAudio.setAttribute( 'preload', 'auto' ); + } + } + function init( _options ) { // Bind to element click event, if need be. body = document.body; @@ -181,13 +200,17 @@ var Elevator = function(options) { duration: undefined, mainAudio: false, endAudio: false, - preloadAudio: true, + preloadAudio: 'none', loopAudio: true, }; _options = extendParameters(_options, defaults); - if( _options.element ) { + if( _options.elements ) { + for( var i = 0; i < _options.elements.length; i++ ) { + bindElevateToElement( _options.elements[i] ); + } + } else if( _options.element ) { bindElevateToElement( _options.element ); } @@ -207,16 +230,10 @@ var Elevator = function(options) { window.addEventListener('blur', onWindowBlur, false); - if( _options.mainAudio ) { - mainAudio = new Audio( _options.mainAudio ); - mainAudio.setAttribute( 'preload', _options.preloadAudio ); - mainAudio.setAttribute( 'loop', _options.loopAudio ); - } - - if( _options.endAudio ) { - endAudio = new Audio( _options.endAudio ); - endAudio.setAttribute( 'preload', 'true' ); - } + mainAudioPath = _options.mainAudio; + endAudioPath = _options.endAudio; + preloadAudio = _options.preloadAudio; + loopAudio = _options.loopAudio; } init(options);