H5頁面背景音樂,C33 360°旋轉效果


 

在做H5頁面的時候,經常會需要用到背景音樂,比如電子賀卡、動態音樂相冊等,右上角有個360°旋轉的音樂圖標,點擊可以控制音樂是否播放,那這個效果是如何實現的呢?

我現整理了一下代碼:

 

 Demo

 

點擊Icon暫停,再次點擊繼續。

HTML代碼如下:

1 <div id="audio_btn" class="rotate">
2     <audio loop src="bg_audio.mp3" id="media" autoplay="" preload=""></audio>
3 </div>

 

CSS代碼如下:

 1 #audio_btn {
 2     width: 30px;
 3     height: 30px;
 4     background-image: url(normalmusic.svg);
 5     background-size: contain;
 6 }
 7 
 8 .rotate {
 9     -webkit-animation: rotating 1.2s linear infinite;
10     -moz-animation: rotating 1.2s linear infinite;
11     -o-animation: rotating 1.2s linear infinite;
12     animation: rotating 1.2s linear infinite
13 }
14 
15 @-webkit-keyframes rotating {
16     from { -webkit-transform: rotate(0) }
17     to { -webkit-transform: rotate(360deg) }
18 }
19 
20 @keyframes rotating {
21     from { transform: rotate(0) }
22     to { transform: rotate(360deg) }
23 }
24 @-moz-keyframes rotating {
25     from { -moz-transform: rotate(0) }
26     to { -moz-transform: rotate(360deg) }
27 }

使用了Keyframes 結合 transfrom 來實現CSS 360°旋轉效果。

JS代碼如下:

1. 實現點擊圖標,旋轉暫停,再點擊再旋轉

1 $("#audio_btn").click(function(){
2     $(this).toggleClass("rotate"); //控制音樂圖標 自轉或暫停
3 })

 

2. 圖片暫停的同時,實現背景音樂也暫停,圖片旋轉的時候,音樂也繼續播放。

結合上面的代碼,修改如下:

 1 var x = document.getElementById("media"); 
 2 $(function(){
 3     $("#audio_btn").click(function(){
 4         $(this).toggleClass("rotate"); //控制音樂圖標 自轉或暫停
 5         
 6         //控制背景音樂 播放或暫停            
 7         if($(this).hasClass("rotate")){
 8             x.play();
 9         }else{
10             x.pause();
11         }
12     })
13 });

因為H5的audio/video自帶pause()和play()的方法,我們直接調用就可以了。但需要注意的是,它不是jquery的方法,如果直接寫成$(audio_btn).find("audio").pause(),是無效的。所以要用原生JS DOM來寫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM