接到需求说要做一个h5轮播图,同时配上背景音乐。

Html部分:

<!--音乐开始-->

<div id="music">

<div id="audio-btn" class="on" onclick="music.changeClass(this,'media')">

<audio loop="loop" src="data:images/SeeYouAgain.mp3" id="media" preload="preload"></audio>

</div>

</div>

<!--音乐结束-->

Css部分:

#music #audio-btn {

width: 44px;

height: 44px;

position: fixed;

z-index: 1000;

top: 30px;

left: 30px;

}

#music .on {

background: url('../images/music_on.png') no-repeat 0 0;

-webkit-animation: rotating 1.2s linear infinite;

animation: rotating 1.2s linear infinite;

}

#music .off {

background: url('../images/music_off.png') no-repeat 0 0;

}

@-webkit-keyframes rotating {

from {

-webkit-transform: rotate(0deg);

-moz-transform: rotate(0deg);

-ms-transform: rotate(0deg);

-o-transform: rotate(0deg);

transform: rotate(0deg);

}

to {

-webkit-transform: rotate(360deg);

-moz-transform: rotate(360deg);

-ms-transform: rotate(360deg);

-o-transform: rotate(360deg);

transform: rotate(360deg);

}

}

@keyframes rotating {

from {

-webkit-transform: rotate(0deg);

-moz-transform: rotate(0deg);

-ms-transform: rotate(0deg);

-o-transform: rotate(0deg);

transform: rotate(0deg);

}

to {

-webkit-transform: rotate(360deg);

-moz-transform: rotate(360deg);

-ms-transform: rotate(360deg);

-o-transform: rotate(360deg);

transform: rotate(360deg);

}

}

JS 部分:

var music = {

changeClass: function(target, id) {

var className = $(target).attr('class');

var ids = document.getElementById(id);

(className == 'on') ?

$(target).removeClass('on').addClass('off'): $(target).removeClass('off').addClass('on');

(className == 'on') ?

ids.pause(): ids.play();

},

play: function() {

var media = document.getElementById('media');

media.src = "images/SeeYouAgain.mp3";

media.play();

//document.getElementById("audio-btn").click(changeClass(this,'media'));

document.addEventListener("WeixinJSBridgeReady", function() {

var audioPlayer = document.querySelector('audio#media');

if(audioPlayer.paused) {

music.changeClass($(".off"), 'media')

}

media.play();

}, false);

}

}

music.play();

var audioPlayer = document.querySelector('audio#media');

if(audioPlayer.paused) {

music.changeClass($(".on"), 'media')

}

遇到的问题:

(1)安卓手机正常,苹果手机微信不能播放:

添加微信监听事件:

document.addEventListener("WeixinJSBridgeReady", function() {

media.play();

)}

(2)微信正常,苹果ipad上的qq不能播放

这个在各种百度后发现,还是不能播放,所以我们对播放器进行判断,更换停播样式:

var audioPlayer = document.querySelector('audio#media');

if(audioPlayer.paused) {

music.changeClass($(".on"), 'media')

}

(3)qq好了,微信出现样式是停播,但是实际在播放,所以把判断也要赋值到,监听后的方法中。

ok 各种正常,写个博客压压惊。

在h5页面上添加音乐播放的更多相关文章

  1. WordPress怎么在页面上添加目录

    要实现的如下功能,在页面上添加一个文章目录: 步骤:   1)在wordpress中,在Posts----Categories中建立目录, 2) 3)add new post,指定post所属的cat ...

  2. Inno Setup技巧[界面]欢迎页面上添加文字

    原文:Inno Setup技巧[界面]欢迎页面上添加文字 本文介绍在"欢迎页面添加文字"的两种方法. 界面预览: Setup技巧[界面]欢迎页面上添加文字" title= ...

  3. jquery,从后台查数据,给页面上添加树形。

    前台jquery+ajax请求往页面上添加树形的js代码 //传入当前点击节点的id,在后台代码查询出parentid=当前节点id的记录数,从而实现点击当前节点,往后台发送ajax请求,查询出子节点 ...

  4. 每天看一片代码系列(三):codepen上一个音乐播放器的实现

    今天我们看的是一个使用纯HTML+CSS+JS实现音乐播放器的例子,效果还是很赞的: codePen地址 HTML部分 首先我们要思考一下,一个播放器主要包含哪些元素.首先要有播放的进度信息,还有播放 ...

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

    原文:http://www.cnblogs.com/wmhuang/p/5452259.html --------------------------------------------------- ...

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

    场景:微信.浏览器.App 普通解决方案:采用audio标签的autoplay属性 现象: 大部分IOS系统和少部分Android微信不支持自动播放 $解决方案:监听WeixinJSBridgeRea ...

  7. ios系统微信浏览器、safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法

    一. 运行环境: iphone所有机型的qq浏览器,safari浏览器,微信内置浏览器(qq浏览器内核)等. 二. 异常现象: 1. 大幅度上下滑动h5页面,然后停止滑动,有时候会影响到页面滚动,如局 ...

  8. 关于微信H5页面开发中音乐不自动播放的解决方法

    我想应该有很多人在做H5场景应用.H5微刊.H5微杂志的时候加入背景音乐吧(客户需求),相信很多人一定碰过不能自动播放的时候,即使是相同的iPhone 5s也有不播放的时候,很蛋疼吧!? 之前我的解决 ...

  9. 【转】h5页面audio不自动播放问题

    1.audio:html5音频标签 <audio loop src="/photo/aa.mp3" id="audio" autoplay preload ...

随机推荐

  1. Google宣布安全奖励项目(GPSRP)覆盖上亿的 Android 应用程序

    自 2010 年推出除虫赏金项目以来,谷歌已经向安全研究人员支付了超过 1500 万美元的奖励.今天,这家科技巨头宣布进一步拓展 Google Play 安全奖励项目(GPSRP)的范围,以覆盖上亿的 ...

  2. sftp 多用户安装与配置

    sftp 是 Secure File Transfer Protocol 的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH 的一部分,由于这种传输方式使用了加密/解 ...

  3. 【LeetCode】加油站

    [问题]在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升.你从其中 ...

  4. JSONPath 表达式的使用

    一.JSONPath使用需要的包 <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactI ...

  5. python爬虫破解带有RSA.js的RSA加密数据的反爬机制

    前言 同上一篇的aes加密一样,也是偶然发现这个rsa加密的,目标网站我就不说了,保密. 当我发现这个网站是ajax加载时: 我已经习以为常,正在进行爬取时,发现返回为空,我开始用findler抓包, ...

  6. 006、MySQL取当前系统时间

    #取当前时间文本格式 SELECT curdate( ) , now( ); 效果如下图: 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:3824772 ...

  7. Jetbrains推出了一款新的编程字体Mono

    今天看到新闻说Jetbrains推出了一款新的编程字体Mono,便到官网上下载试了一下, 在VS和VS Code中显示效果都非常不错,是并且支持连体,感兴趣的朋友可以到其官网下载试用一下.

  8. 搭建selenium+Python+eclipse 的开发环境

    下载安装Python,下载“python-2.7.9.msi”后可直接安装 下载安装setuptools,下载setuptools-11.3.1后,用命令提示符转到安装包中setup.py所在的位置, ...

  9. 九九乘法表的四种三角形排布方式(for循环以及while循环的互换)

    #region //右上 for (int i = 1; i <= 9; i++){ for (int j = 1; j <= 9; j++){ if (i > j){ Consol ...

  10. P1048 数字加密

    P1048 数字加密 转跳点: