show hide div / play停止音频

时间:2014-11-21 13:36:47

标签: javascript html audio hide show

我尝试学习javascript / jquery。 (对不起我的英文^^) 我必须在我的网页中显示或隐藏一些div。没关系,这与javascript工作正常。 但例如,当div1可见时(显示:是)我想播放声音,当它不可见时(显示:无)停止声音。 和 我不希望同时播放两个声音文件,如果新的div打开,则播放声音文件并停止所有其他声音。这是一个例子,但它不起作用, 没有任何反应:(谢谢。

的Javascript

<script src="jquery-1.11.1.min.js"></script>

<script type="text/javascript">

if($('#mydiv').css('display') == 'block')
    {

    $('audio').each(function() {
        $(this).play();
    });

} else {

    $('audio').each(function() {
        $(this).pause();
    });

}

</script>

HTML

<div id="mydiv" style="display:block">
<audio id="audio">
<source src="voice.mp3"></source>
</audio>Hi</div>


<div id="mydiv2" style="display:none">
<audio id="audio2">
<source src="voice_2.mp3"></source>
</audio>Hey</div>


<div id="mydiv3" style="display:none">
<audio id="audio3">
<source src="voice_3.mp3"></source>
</audio>Yep</div>

2 个答案:

答案 0 :(得分:1)

你发明了显示器:是的:D 你可以使用display:block there ..

以下是所有展示属性的链接。

http://www.w3schools.com/cssref/playit.asp?filename=playcss_display&preval=inline

答案 1 :(得分:0)

尝试这样的事情,使用Firefox我认为它需要停止()而不是暂停,但不确定。请注意,我已经在第一个div和音频中添加了一个数字1,并在您认为合适的情况下将其粘在一起。

&#13;
&#13;
$(function(){    
$('button').on('click',function(e){
	$('audio').each(function(){
		this.pause(); // Stop playing
			this.currentTime = 0; // Reset time
		}); 
    $('div').css('display','none');
    $('#mydiv'+this.innerHTML).toggle();   
	});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>1</button><button>2</button><button>3</button><br><br>
<div id="mydiv1" style="display:none">div1
<audio id="audio1" autoplay>
<source src="voice1.mp3"></source>
</audio>
</div>
<div id="mydiv2" style="display:none">div2
<audio id="audio2">
<source src="voice_2.mp3"></source>
</audio>
</div>
<div id="mydiv3" style="display:none">div 3
<audio id="audio3">
<source src="voice_3.mp3"></source>
</audio>
 </div>
&#13;
&#13;
&#13;

Jsfiddle

取消注释暂停和播放,忘记这样做,使用Firefox我觉得它需要停止()而不是暂停