2017-07-15 109 views
0

伙计。请向我解释这一点。 我想为我的页面创建一个静音/取消静音按钮。 (音频自动启动) 所以这里的代码,我使用的第一次:背景音的静音/取消静音按钮

<script> 
 
var sound = getElementById (‘background_sound’); 
 
     function mute(){ 
 
      if(background_audio.muted == false){ 
 
      background_audio.muted = true; 
 
      } else { 
 
      background_audio.muted = false; 
 
      } 
 

 
} 
 
</script>

但没有奏效。所以我刚刚删除了第一行(我的意思是这个变种),并直接解决了id。它的工作。现在我的HTML看起来像这样:

<audio id="background_audio" autoplay="true" loop="loop"> 
 
      <source src="Audio/flute.mp3"> 
 
If you are reading this, it is because your browser does not support the audio element. 
 
</audio> 
 

 
<button onclick="mute()"> 
 
     <i class="fa fa-music"></i></button>

和JavaScript这样

<script> 
 

 
     function mute(){ 
 
      if(background_audio.muted == false){ 
 
      background_audio.muted = true; 
 
      } else { 
 
      background_audio.muted = false; 
 
      } 
 

 
} 
 
</script>

的问题是我怎么能地址标识的情况下直接创建变量?它工作正常,但我会稍后有任何问题的代码?我只是觉得我需要分配一个var来工作。有点困惑。

+0

了'VAR声音= ..'线是相当严重的格式化。试试'var background_audio = document.getElementById('background_sound');'并将其放入'mute()'函数中。 – user2464424

+0

试过了。仍然不能这样工作。用var我的意思是。但是,如果没有它工作正常 –

+0

对不起,它是'var background_audio = document.getElementById('background_audio');'在你的html中没有'background_sound'这样的东西。 – user2464424

回答

0

试试这个,我相信这会工作

<script> 

      function mute(){ 
       if(document.getElementById('background_audio').muted == false){ 
       document.getElementById('background_audio').muted = true; 
       } else { 
       document.getElementById('background_audio').muted = false; 
       } 

    } 
    </script>