Fix elevator

This commit is contained in:
T
2026-06-02 02:21:42 +02:00
parent 1ef7868e7b
commit 974887eb1f
3 changed files with 33 additions and 19 deletions
+2 -4
View File
@@ -31,18 +31,16 @@ layout: default
</div> </div>
</div> </div>
<div id="elevator-button{{ forloop.index0 }}" class="elevator-button"><i class="fa fa-arrow-up"></i></div> <div id="elevator-button{{ forloop.index0 }}" class="elevator-button"><i class="fa fa-arrow-up"></i></div>
{% endfor %}
<script> <script>
// unfortunately elevator does not support a list of elements yet, hotfix for now, should be removed asap
// Elevator script: https://github.com/tholman/elevator.js // Elevator script: https://github.com/tholman/elevator.js
new Elevator({ new Elevator({
element: document.querySelector('#elevator-button{{ forloop.index0 }}'), elements: document.querySelectorAll('.elevator-button'),
mainAudio: '/media/elevator-music.mp3', // Music from http://www.bensound.com/ mainAudio: '/media/elevator-music.mp3', // Music from http://www.bensound.com/
endAudio: '/media/ding.mp3', // Music from http://www.bensound.com/ endAudio: '/media/ding.mp3', // Music from http://www.bensound.com/
}); });
</script> </script>
{% endfor %}
<div class="page-navigation" style="text-align:center"> <div class="page-navigation" style="text-align:center">
{% if paginator.previous_page %} {% if paginator.previous_page %}
+2 -3
View File
@@ -108,14 +108,13 @@ show_mobile_large_logo: true
</div> </div>
</div> </div>
<div id="elevator-button{{ forloop.index0 }}" class="elevator-button"><i class="fa fa-arrow-up"></i></div> <div id="elevator-button{{ forloop.index0 }}" class="elevator-button"><i class="fa fa-arrow-up"></i></div>
{% endfor %}
<script> <script>
// unfortunately elevator does not support a list of elements yet, hotfix for now, should be removed asap
// Elevator script: https://github.com/tholman/elevator.js // Elevator script: https://github.com/tholman/elevator.js
new Elevator({ new Elevator({
element: document.querySelector('#elevator-button{{ forloop.index0 }}'), elements: document.querySelectorAll('.elevator-button'),
mainAudio: '/media/elevator-music.mp3', // Music from http://www.bensound.com/ mainAudio: '/media/elevator-music.mp3', // Music from http://www.bensound.com/
endAudio: '/media/ding.mp3', // Music from http://www.bensound.com/ endAudio: '/media/ding.mp3', // Music from http://www.bensound.com/
}); });
</script> </script>
{% endfor %}
+29 -12
View File
@@ -27,6 +27,10 @@ var Elevator = function(options) {
var mainAudio; var mainAudio;
var endAudio; var endAudio;
var mainAudioPath;
var endAudioPath;
var preloadAudio;
var loopAudio;
var that = this; var that = this;
@@ -112,6 +116,8 @@ var Elevator = function(options) {
requestAnimationFrame( animateLoop ); requestAnimationFrame( animateLoop );
loadAudio();
// Start music! // Start music!
if( mainAudio ) { if( mainAudio ) {
mainAudio.play(); 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 ) { function init( _options ) {
// Bind to element click event, if need be. // Bind to element click event, if need be.
body = document.body; body = document.body;
@@ -181,13 +200,17 @@ var Elevator = function(options) {
duration: undefined, duration: undefined,
mainAudio: false, mainAudio: false,
endAudio: false, endAudio: false,
preloadAudio: true, preloadAudio: 'none',
loopAudio: true, loopAudio: true,
}; };
_options = extendParameters(_options, defaults); _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 ); bindElevateToElement( _options.element );
} }
@@ -207,16 +230,10 @@ var Elevator = function(options) {
window.addEventListener('blur', onWindowBlur, false); window.addEventListener('blur', onWindowBlur, false);
if( _options.mainAudio ) { mainAudioPath = _options.mainAudio;
mainAudio = new Audio( _options.mainAudio ); endAudioPath = _options.endAudio;
mainAudio.setAttribute( 'preload', _options.preloadAudio ); preloadAudio = _options.preloadAudio;
mainAudio.setAttribute( 'loop', _options.loopAudio ); loopAudio = _options.loopAudio;
}
if( _options.endAudio ) {
endAudio = new Audio( _options.endAudio );
endAudio.setAttribute( 'preload', 'true' );
}
} }
init(options); init(options);