Enya
Caribbean Blue
Enya
May It Be
(
)
"Властелин колец: Братство кольца"
Инструкция
(скрыть)
1. Добавь на страницу в отдельный Zero Block кнопку Stop, убери у блока фон, сделай его по высоте кнопки (кнопку можно располагать, как хочется). Отключи иконкам lazyload.
Для каждой композиции нужно добавить отдельный блок с кнопкой.

2. Задай в настройках Zero Block с кнопкой класс uc-stop-button.
Всем блокам один класс.

3. Всем кнопкам play задай класс playsound, а кнопкам stop stopsound.

4. Всем кнопкам play пропиши ссылки #playsound_1, #playsound_2, а всем кнопкам stop #stopsound_1, #stopsound_2.

5. Замени в коде ссылки на файлы (в id нужно установить порядковый номер композиции) и установи изначальную громкость. Максимальная громкость равна единице. Редачить код можно прямо на странице.

6. Скопируй код и вставь в блок T123. Итоговый код после теста можно сжать на этом сайте (сэкономит до 30% трафика)


Если не работает

1. Проверь ссылки на треки.

2. Открой консоль Ctrl + Shift + I → Console и посмотри ошибки. Часто там прямо написано, что именно не работает.

3. Скинь мне ссылку на страницу.

<!-- Code by Fedyaeva -->
<audio id="my_sound1">
     <source src="https://dl1.i-tsmusic.com/192/19535.mp3" type="audio/mpeg">
</audio>
<audio id="my_sound2">
     <source src="https://dl1.i-tsmusic.com/192/19535.mp3" type="audio/mpeg">
</audio>
<script>
document.addEventListener("DOMContentLoaded",function(){
    let playSound = document.querySelectorAll('.playsound');
    let stopSound = document.querySelectorAll('.stopsound');
    let audio = document.querySelectorAll('audio');
    let allLink = document.querySelectorAll('a');
    // 0.6 - изначальная громкость
    audio.forEach((el) => el.volume = 0.6);
    history.pushState("", document.title, window.location.pathname);
    
    $('a').click(function(e){
	    var anch = this.hash.slice(0);
	    if(!anch || !anch[0] === "#") return;
	    e.preventDefault();
	    window.location.hash = '';
	    if(history.pushState) { history.pushState({}, null, window.location.pathname); }
    });
    
    let btnLink = 0;
    let soundMax = 0;
    
    // скрываю все кнопки стоп
    stopSound.forEach((btn) => btn.closest('.stopsound').style.visibility = "hidden");
    
    function changeButton () {
        playSound.forEach((btn) => btn.style.visibility = "visible");
        stopSound.forEach((btn) => {btn.style.visibility = "hidden"; if (btn.closest('.uc-stop-button')) {btn.closest('.uc-stop-button').removeAttribute("style")}});
    }
    
    playSound.forEach((btn) => {
        btn.addEventListener('click', () => {
            changeButton ();
            btnLink = event.target.closest('a').href.split('_')[1];
            soundMax = document.querySelector('#my_sound' + btnLink);
            soundMax.play();
            event.target.closest('.playsound').style.visibility = "hidden";
            document.querySelectorAll('a[href*="#stopsound_'+ btnLink +'"]').forEach((el) => {el.closest('.stopsound').style.visibility = "visible"; if (el.closest('.uc-stop-button')) {el.closest('.uc-stop-button').style.zIndex = "100";}});
        });
    });
    
    stopSound.forEach((btn) => {
        btn.addEventListener('click', () => {
            changeButton ();
            btnLink = event.target.closest('a').href.split('_')[1];
            soundMax = document.querySelector('#my_sound' + btnLink);
            soundMax.pause();
            event.target.closest('.stopsound').style.visibility = "hidden";
            if (event.target.closest('.uc-stop-button')) {event.target.closest('.uc-stop-button').removeAttribute("style");}
            document.querySelector('a[href*="#playsound_'+ btnLink +'"]').closest('.stopsound').style.visibility = "visible";
        });
    });
    
    $(function() { 
        $('audio').on('play', function() { 
            $('audio').addClass('stoped').removeClass('playing'); 
            $(this).removeClass('stoped').addClass('playing'); 
            $('.stoped').each(function() { $(this).trigger('pause'); 
            }) 
        }) 
    }); 
});
</script>
<style>
.uc-stop-button {position: fixed;bottom: 0;left: 0;width: 100%;}
</style>
Made on
Tilda