播放音频时更改图片(jQuery,HTML5)

时间:2015-03-17 00:47:23

标签: javascript php jquery html5 audio

我需要一些帮助:

<script>
    $(window).load(function(){  
        function swapImages(){
            var $active = $('#myGallery .active');
            var $next = ($('#myGallery .active').next().length > 0) ? $('#myGallery .active').next() : $('#myGallery img:first');
            $active.fadeOut(function(){
                $active.removeClass('active');
                $next.fadeIn().addClass('active');
            });
        }

        $('#audio').click(function() {
            alert("YESSSSSSSSSSSS!");
            setInterval("swapImages()", 5000);
        });
    });
 </script>

&#34;点击功能&#34;不起作用。我必须提一下,在之前的jquery调用另一个动作之后,音频部分将加载一个PHP文件。那么,我该怎么办?

谢谢!

<audio controls='controls' id='audio'> 
   <source src=". $final_file ." type='audio/mp3'/> 
</audio>

2 个答案:

答案 0 :(得分:0)

如果音频文件是在稍后阶段加载的,那么使用.on()而不是.click()

$('body').on('click', '#audio', function() {
  alert("YESSSSSSSSSSSS!");
  setInterval("swapImages()", 5000);
});

答案 1 :(得分:0)

我假设你想在播放歌曲时改变背景,你可以试试下面的代码......

<script>
$(window).load(function(){  
    function swapImages(){
        var $active = $('#myGallery .active');
        var $next = ($('#myGallery .active').next().length > 0) ? $('#myGallery .active').next() : $('#myGallery img:first');
        $active.fadeOut(function(){
            $active.removeClass('active');
            $next.fadeIn().addClass('active');
        });
    }

    var aud= document.getElementById('audio');
    aud.addEventListener('play', onStart);
    aud.addEventListener('pause', onEnded); 
    aud.addEventListener('ended', onEnded);
    function onEnded(){
        clearInterval(window.audInterval);
    }
    function onStart(){
        alert('Started playing...');
        window.audInterval = setInterval(swapImages, 5000);
    }
});
</script>

p.s:根据需要尝试使用少量JQuery。只是我的两分钱。