为你的html5网页添加音效示例


Posted in HTML / CSS onApril 03, 2014

为交互添加恰当的音效,常常能改善用户体验。在我们所熟悉的windows里,清空回收站的碎纸声就是很好的例子。
下面是一个利用HTML5, Jquery,给页面添加音效的小组件(只是添加音效,并不是播放器)。
其实很简单,就是利用HTML5中的audio标签,播放声音。不过为了照顾IE 6-8,还是用上了bgsound。
兼容所有主流浏览器(非主流不在考虑之列了)
闲话少说,上代码:

复制代码
代码如下:

<a href="#" class="fui-btn">播放</a>
<script>
/*Play sound component*/
/*
* profile: JSON, {src:'chimes.wav',altSrc:'',loop:false}
*
* setSrc: Function, set the source of sound
* play: Function, play sound
*/
if (!FUI){
var FUI = {};
}
FUI.soundComponent=function(profile){
this.profile={
src:'',

  //音频文件地址
altSrc:'',

//备选音频文件地址 (不同浏览器支持的音频格式不同,可见附表)
loop:false

  //是否循环播放,这个参数现在没有用上
};
if(profile) {
$.extend(this.profile,profile);
}
this.soundObj=null;
this.isIE = !-[1,];
/*这个方法是前辈大牛发明的,利用ie跟非ie中JScript处理数组最后一个逗号“,”的差异,
不过对于IE 9,这个办法就无效了,但此处正合我用,因为IE 9支持audio*/
this.init();
};
FUI.soundComponent.prototype={
init:function(){
this._setSrc();
},
_setSrc:function(){
if(this.soundObj){
if(this.isIE){
this.soundObj[0].src=this.profile.src;
}else{
this.soundObj[0].innerHTML='<source src="'+this.profile.src+'" />
<source src="'+this.profile.altSrc+'" />';
}
}else{
if(this.isIE){
this.soundObj=$
('<bgsound volume="-10000" loop="1" src="'+this.profile.src+'">').appendTo('body');
//-10000是音量的最小值。先把音量关到最小,免得一加载就叮的一声,吓到人。
}else{
this.soundObj=$('<audio preload="auto" autobuffer>
<source src="'+this.profile.src+'" />
<source src="'+this.profile.altSrc+'" />
</audio>').appendTo('body');
}
}
},
setSrc:function(src,altSrc){
this.profile.src=src;
if(typeof altSrc!='undefined'){
this.profile.altSrc=altSrc;
}
this._setSrc();
},
play:function(){
if(this.soundObj){
if(this.isIE){
this.soundObj[0].volume = 1;

//把音量打开。
this.soundObj[0].src = this.profile.src;
}else{
this.soundObj[0].play();
}
}
}
};
var sd=new FUI.soundComponent({src:'ding.wav',altSrc:'ding.mp3'});
$('.fui-btn').bind('click',function(e){
sd.play();
});
</script>

HTML / CSS 相关文章推荐
CSS3结构性伪类选择器九种写法
Apr 18 HTML / CSS
一款css实现的鼠标经过按钮的特效
Sep 11 HTML / CSS
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
Mar 17 HTML / CSS
CSS3中颜色线性渐变实战
Jul 18 HTML / CSS
css3实现多个元素依次显示效果
Dec 12 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
Jul 15 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
Mar 18 HTML / CSS
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
Apr 08 HTML / CSS
HTML5 Canvas实现烟花绽放特效
Mar 02 HTML / CSS
关于canvas绘制模糊问题的解决方法
Sep 24 HTML / CSS
聊聊CSS粘性定位sticky案例解析
Jun 01 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
Apr 02 #HTML / CSS
简单html5代码获取地理位置
Mar 31 #HTML / CSS
HTML5注册页面示例代码
Mar 27 #HTML / CSS
html5实现微信打飞机游戏
Mar 27 #HTML / CSS
html5 canvas fillRect坐标和大小的问题解决方法
Mar 26 #HTML / CSS
html5适合移动应用开发的12大特性
Mar 19 #HTML / CSS
用html5实现语音搜索框的方法
Mar 18 #HTML / CSS
You might like
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
python爬取网页转换为PDF文件
2018/06/07 Python
Windows下安装Scrapy
2018/10/17 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
中医专业应届生求职信
2013/11/17 职场文书
大专生自我评价
2014/01/28 职场文书
小学清明节活动方案
2014/03/08 职场文书
中学生学习保证书
2015/02/26 职场文书
导游词之吉林花园山
2019/10/17 职场文书