Сейчас узнаем, какой подарок выпадет именно Вам
Крутите колесо
Как сделать soundButton в ZeroBlock в Tilda
Free Shipping On All Orders Over $100
Welcome To Our Music Store
From Starters To Pro…
Here you'll find a huge range of musical equipments of some of the biggest world's famous brands.
Keyboards & Digital Pianos
New In Keyboards
Shop Now
Musican's Lifestyle
Om Every Brand
Mega Sale
Shop Now
Best Sellers
Crosley Cruiser Portable 3-Speed Turntable
Gibson Custom L5 Premier Acoustic Guitar
Tama S.L.P. Big Black Steel Snare Drum
Handcrafted Blue Acoustic Violin

Как сделать soundButton в ZeroBlock в Tilda

1
Создали ZeroBlock
2
Добавили в него image или shape с классом sound-play для кнопки play
3
Добавили в него image или shape с классом sound-stop для кнопки stop
4
Объединили эти кнопки в autolayout и ему уже задали ссылку на наш mp3 в поле link
https://310401.selcdn.ru/links/Zvuk_-_vinil.mp3
5
Добавили скрипт на страницу
Скрипт вставляется в блок Другое - Т123
Mo-ti Level Up
Видео инструкции по добавлению кода и работе с Zero Block.
Как сделать soundButton в ZeroBlock в Tilda
Фрагмент видео
Библиотека для примера
<script>
(function() {
    'use strict';

    let currentAudio = null;
    let currentGroup = null;

    function setPlayingState(group, isPlaying) {
        var playBtn = group.querySelector('.sound-play');
        var stopBtn = group.querySelector('.sound-stop');

        if (isPlaying) {
            if (playBtn) {
                playBtn.style.opacity = '0';
                playBtn.style.pointerEvents = 'none';
            }
            if (stopBtn) {
                stopBtn.style.opacity = '1';
                stopBtn.style.pointerEvents = 'auto';
            }
        } else {
            if (playBtn) {
                playBtn.style.opacity = '1';
                playBtn.style.pointerEvents = 'auto';
            }
            if (stopBtn) {
                stopBtn.style.opacity = '0';
                stopBtn.style.pointerEvents = 'none';
            }
        }
    }

    function stopCurrent() {
        if (currentAudio) {
            currentAudio.pause();
            currentAudio.currentTime = 0;
            currentAudio = null;
        }
        if (currentGroup) {
            setPlayingState(currentGroup, false);
            currentGroup = null;
        }
    }

    function initGroup(group) {
        var href = group.getAttribute('href');
        if (!href) return;

        var playBtn = group.querySelector('.sound-play');
        var stopBtn = group.querySelector('.sound-stop');

        if (!playBtn || !stopBtn) return;

        stopBtn.style.opacity = '0';
        stopBtn.style.pointerEvents = 'none';

        playBtn.addEventListener('click', function(e) {
            e.preventDefault();
            e.stopPropagation();

            if (currentGroup === group && currentAudio && !currentAudio.paused) {
                return;
            }
       
            stopCurrent();
           
            currentAudio = new Audio(href);
            currentGroup = group;

            currentAudio.addEventListener('ended', function() {
                setPlayingState(group, false);
                currentAudio = null;
                currentGroup = null;
            });

            currentAudio.play().catch(function(err) {
                console.log('Audio play error:', err);
                setPlayingState(group, false);
                currentAudio = null;
                currentGroup = null;
            });

            setPlayingState(group, true);
        });

        stopBtn.addEventListener('click', function(e) {
            e.preventDefault();
            e.stopPropagation();

            if (currentGroup === group) {
                stopCurrent();
            }
        });
    }

    function init() {
        var groups = document.querySelectorAll('a.tn-group');
        groups.forEach(function(group) {
            if (group.querySelector('.sound-play') && group.querySelector('.sound-stop')) {
                initGroup(group);
            }
        });
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }
})();
</script>
Made on
Tilda