WEB應用中,有時需要播放特定的聲音,比如有新消息或者在線聊天消息聲音提示,以前我們通過flash實現,今天我們將使用jQuery和HTML5結合示例來實現如何把聲音提示帶入WEB應用中。
在本例中,我們基於一個簡易的WEB在線聊天應用為背景,當輸入完信息點“發送”按鈕后,信息將出現在聊天框中,並發出提示聲音。本例依賴jQuery,以及支持HTML5的audio技術,所以什么IE6,7,8可以洗洗先睡了。
HTML
頁面主體是一個聊天框#chatBox,由上部分聊天內容區#chat和下部分內容輸入操作區組成,聊天內容以列表的形式展示在#chatMessages中。
1 <div id="chatBox"> 2 <div id="chat"> 3 <ul id="chatMessages"> 4 <li> 5 <img src="user.gif"/><span>Hello Friends</span> 6 </li> 7 <li> 8 <img src="user.gif"/><span>你好,朋友!Helloweba.com歡迎你.</span> 9 </li> 10 </ul> 11 </div> 12 <input type="text" id="chatData" placeholder="Message" /> 13 <input type="button" value=" 發送 " id="trig" /> 14 </div>
CSS
我們用簡單的CSS來美化HTML。
1 #chatBox{width:400px;border:1px solid #d3d3d3;margin:50px auto;} 2 #chat {max-height:220px;overflow-y:auto;max-width:400px;} 3 #chat > ul > li{padding:3px;clear:both;padding:4px;margin:10px 0px 5px 0px;overflow:auto} 4 #chatMessages{list-style:none} 5 #chatMessages > li > img{width:35px;float:left} 6 #chatMessages > li > span{width:300px;float:left;margin-left:5px} 7 #chatData{padding:5px;margin:5px;border-radius:5px;border:1px solid #999;width:300px} 8 #trig {border: 1px solid #390; color:#fff; background: #360;-webkit-border-radius: 3px; 9 -moz-border-radius:3px;padding:5px 8px; cursor:pointer}
jQuery
首先需要載入聲音文件,我們使用HTML5標簽<audio>,通過source預加載聲音文件到頁面中。關於audio的相關知識,大家可以參照本站文章: 使用HTML5的Audio標簽打造WEB音頻播放器
當用戶在輸入框中輸入完信息,點擊發送按鈕,信息將插入到聊天內容區,並調整聊天區滾動條高度,同時播放聲音,請看代碼及注釋。
1 $(function(){ 2 $("#chatData").focus();//輸入框獲得焦點 3 $('<audio id="chatAudio"><source src="notify.ogg" type="audio/ogg"> 4 <source src="notify.mp3" type="audio/mpeg"><source src="notify.wav" type="audio/wav"> 5 </audio>').appendTo('body');//載入聲音文件 6 7 $("#trig").click(function(){ 8 var a = $("#chatData").val().trim();//獲取輸入的內容 9 if(a.length > 0){ 10 $("#chatData").val(''); //清空輸入框 11 $("#chatData").focus(); //獲得焦點 12 $("<li></li>").html('<img src="qq.gif"/><span>'+a+'</span>') 13 .appendTo("#chatMessages");//將輸入的內容追加的聊天區 14 $("#chat").animate({"scrollTop": $('#chat')[0].scrollHeight}, "slow");//調整滾動條 15 $('#chatAudio')[0].play(); //播放聲音 16 } 17 }); 18 });
最后提醒下,不要忘了在html中先載入jQuery庫文件,這是很多同學問到的問題,再次提醒如果下載本站的文件后在本地運行看不到效果的,請先檢查下jQuery庫文件是否已經加載。helloweba.com感謝您的關注。