2017-02-27 64 views
0

我想在音頻文件播放時更改div的背景顏色,然後在音頻未播放時將其更改回原始顏色。當.play()爲真時如何更改div背景顏色

$('.uprow2').on('click', function() { 
 
    $('#karma')[0].play(); 
 
});
.uprow2 { 
 
    width: 680px; 
 
    height: 60px; 
 
    background: #000000; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="uprow2"> 
 
    <p class="song">LISTEN - KARMA POLICE</p> 
 
</div>

任何幫助,將不勝感激。

謝謝!

+1

對於如何檢查時播放視頻結束►請參見本[使用

回答

0

要達到此目的,最好直接在audio元素上使用事件。通過這種方式,狀態不會被掛在按鈕上,並且如果用戶通過播放器控件改變音頻文件的播放狀態,它仍然可以工作。試試這個:

$('#karma').on('playing', function() { 
    $('.uprow2').addClass('playing');  
}).on('ended pause suspend error', function() { 
    $('.uprow2').removeClass('playing'); 
}); 

Working example

+0

太好了!現在我有另一個問題,如果我添加更多的音頻文件來播放,這個工作嗎?我能夠針對每個ID還是需要不同的代碼? –

+0

這取決於你的HTML結構是什麼。如果您遇到問題,我會建議您提出一個新問題 –

0

試試這個

$('.uprow2').on('click', function(){ 
 
    if ($(this).hasClass('play')) { 
 
    $(this).removeClass('play'); 
 
    } else { 
 
    $(this).addClass('play'); 
 
    } 
 
});
.uprow2 { 
 
width: 680px; 
 
height: 60px; 
 
background-color: #000000; 
 
} 
 

 
.play { 
 
background-color: #FF0000; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 

 
<html>  
 
<div class="uprow2"><p class="song">LISTEN - KARMA POLICE</p></div> 
 
</html>

0

只需添加jQuery代碼來改變背景顏色爲這個div

$(this).css('background-color', 'your-color'); 

請參考下解決方案:

$('.uprow2').on('click', function(){ 
 
    $('#karma')[0].play(); 
 
    $(this).css('background-color', 'yellow'); 
 
});
.uprow2 { 
 
width: 680px; 
 
height: 60px; 
 
background: #000000; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<html>  
 
<div class="uprow2"><p class="song">LISTEN - KARMA POLICE</p></div> 
 
</html>

0

您可以使用Media events來處理按鈕的背景。

var $audioElement = $('#karma'); 
 
$audioElement.on('playing abort stalled ended pause suspend error', function(ev) { 
 
    $('.uprow2').toggleClass('myPlayingClass',ev.type == "playing"); 
 
});
.uprow2 { 
 
    width: 680px; 
 
    height: 80px; 
 
    background: #000000; 
 
    color:white; 
 
    } 
 
.myPlayingClass{ 
 
background-color:red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="uprow2"> 
 
    <audio id="karma" controls src="https://www.w3schools.com/tags/horse.ogg"> 
 
    Your browser does not support the audio element. 
 
</audio> 
 
    <p class="song">LISTEN - KARMA POLICE</p> 
 
</div>