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来写。

时间: 2024-12-13 06:35:12

H5页面背景音乐,C33 360°旋转效果的相关文章

H5页面背景音乐,C33自转效果(原创)

我们经常在访问H5页面(比如电子贺卡.动态音乐相册等)的时候,会看到右上角有个自转的音乐图标,点击可以控制音乐是否播放,那这个效果是如何实现的呢?  Demo HTML代码如下: 1 <div id="audio_btn" class="rotate"> 2 <audio loop src="bg_audio.mp3" id="media" autoplay="" preload=&quo

【转】一种解决h5页面背景音乐不能自动播放的方案

原文:http://www.cnblogs.com/wmhuang/p/5452259.html ---------------------------------------------------------------------------------------------- 场景:微信.浏览器.App 普通解决方案:采用audio标签的autoplay属性 现象: 大部分IOS系统和少部分Android微信不支持自动播放 $解决方案:监听WeixinJSBridgeReady事件.D

一种解决h5页面背景音乐不能自动播放的方案

场景:微信.浏览器.App 普通解决方案:采用audio标签的autoplay属性 现象: 大部分IOS系统和少部分Android微信不支持自动播放 $解决方案:监听WeixinJSBridgeReady事件.DOMContentLoaded事件 微信的JS API建立在微信壳浏览器的内置JS对象WeixinJSBridge上,WeixinJSBridge并不是WebView一打开就有了,客户端需要初始化这个对象,当这个对象准备好的时候,客户端会抛出事件"WeixinJSBridgeReady&

解决h5页面背景音乐不能自动播放的方案

场景:微信.浏览器.App 普通解决方案:采用audio标签的autoplay属性 现象: 大部分IOS系统和少部分Android微信不支持自动播放 $解决方案:监听WeixinJSBridgeReady事件.DOMContentLoaded事件 微信的JS API建立在微信壳浏览器的内置JS对象WeixinJSBridge上,WeixinJSBridge并不是WebView一打开就有了,客户端需要初始化这个对象,当这个对象准备好的时候,客户端会抛出事件"WeixinJSBridgeReady&

h5页面添加背景音乐

[需求]h5页面添加背景音乐,支持微信.QQ.各种APP. [实现思路]1.通过audio标签,设置自动播放,是一种方法,但是此方法只适合微信.QQ,并不兼容我司的APP,需要主动触发下播放事件. 2.针对可以自动播放的渠道,通过this.audio.addEventListene监听playing事件,控制小喇叭的状态. [知识点]audio标签.addEventListener.classList [代码]封装了一个公共组件: 1 <template> 2 <div class=&q

【干货】微信场景之H5页面制作免费工具大集合

营销代有手段出,各领风骚数百天.要说现在哪些营销方式最能传播,屡屡刷爆朋友圈的H5页面肯定就是首当其冲的,提到H5页面,就立马想到"围住神经猫",上线微信朋友圈3天的时间便创造了用户500万,访问量超1亿的神话. H5如此势头,不得不让营销人对H5页面的未来充满了期待,越来越多的人开始在营销中运用H5页面.其实在移动端各个领域,H5页面的叫法很多,也会称为翻翻看.手机微杂志.广告页.场景应用.海报\画报(动态海报.指尖海报.掌中海报.动画海报.微画报.微海报)等等,经常能见到的就是滑动

手机版制作H5页面免费工具大集合

搜狐快站 搜狐快站是搜狐推出的免费一站式移动建站云平台,不久前他们也进军了H5页面制作的领域.拖拽式操作,简单易上手:有辅助线,支持图片微调:背景图片有滤镜功能,同一组件支持多重动画,自主程度高.另外还支持表单.电话.视频.自动播放.JS插件等功能.最重要的是,上述功能全部免费,完全无需担心制作成本. 初页 初页作为手机端制作动态海报的APP,门槛还是比较低的,容易上手,可以直接在手机上编辑,制作极为便利,图文混排的模板也很丰富.可免费下载安卓版和苹果版初页App,或通过电脑在线创建.编辑,轻松

自定义H5页面规范

查看详情页也可支持自定义H5页面,用来展示更多内容. 交互规范 分屏切换,支持横向和竖向,滑动指引需清晰 若详情页加载较慢,需设计loading页,给予用户友好的提示 如有视频,需在底部加上“建议在Wi-Fi环境下播放”提示 建议一个页面不超过两种以上交互操作 设计规范 页面尺寸建议:640像素×1100像素 最小按钮宽度:160像素 最小按钮高度:60像素 页面最小字号:不小于24像素 二维码最小尺寸:200像素×200像素 ,边距至少为10像素 背景音乐规范:必须支持音乐可循环及可关闭,并采

ios嵌套H5页面,出现的小bug;

ios嵌套H5页面,点击数字时就会弹出打电话的功能:解决方法: 在head标签中添加: <meta name="format-detection" content="telephone=no"> ios嵌套H5页面,只要碰到页面,就会使input获取焦点,调取ios键盘,解决方法:在页面上添加js如下: $("body")[0].addEventListener("touchstart",function(){ d