之前的一篇被从首页拿掉了,我想不出哪里违规。

询问管理员,也没回应。

那我就猜一个,也许是没有用插入代码的方式写代码。

Update一下。

为交互添加恰当的音效,常常能改善用户体验。在我们所熟悉的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>

更多相关文章

  1. 字体图标的引入和通过媒体查询改变导航样式
  2. HTML样式和常用选择器
  3. 字体图标的引用和自定义样式/媒体查询的使用
  4. 数据库的CURD操作、PDO本质与原理的学习
  5. CSS之伪类选择器和简单盒子简单案例
  6. 伪类选择器与盒模型常用属性
  7. 伪类选择器-结构伪类、根据位置选择匹配
  8. 7.4——常用标签与应用场景之表格与单元格
  9. css伪类选择器和盒模型

随机推荐

  1. IDEA常用设置及推荐插件
  2. 又踩到Dubbo的坑,但是这次我笑不出来
  3. mall架构及功能概览
  4. mall学习所需知识点
  5. mall整合Elasticsearch实现商品搜索
  6. mall整合SpringBoot+MyBatis搭建基本骨架
  7. mall整合Mongodb实现文档操作
  8. mall整合Swagger-UI实现在线API文档
  9. mall整合Redis实现缓存功能
  10. mall整合RabbitMQ实现延迟消息