首頁  >  文章  >  web前端  >  html5中關於volume屬性的使用詳解

html5中關於volume屬性的使用詳解

黄舟
黄舟原創
2017-07-17 14:15:563113瀏覽

Audio物件屬性: volume 描述:設定或返回音訊的音量,取值範圍(0——1)

下面是我做的音樂播放器如何調整音訊音量的程式碼:

//增加切换音量事件
(function(){
    var height = $("#myAudio ul.control li.volume .alert-box .volume-wrap .bar .scroll-bar").height();
    $("#myAudio ul.control li.volume .alert-box .volume-wrap .bar .scroll-bar .scroll-btn").on("mousedown",function(e){
        e.preventDefault();
        var downHeight = $("#myAudio ul.control li.volume .alert-box .volume-wrap .bar .scroll-bar").height();
        var downY = e.clientY;
        document.onmousemove = function(e){
            e.preventDefault();
            var moveY = e.clientY;
            var nowHeight = downY-moveY+downHeight;
            if(nowHeight<=0){
                nowHeight =0;
            }else if(nowHeight >= height){
                nowHeight = height;
            }
            $("#myAudio ul.control li.volume .alert-box .volume-wrap .bar .scroll-bar").height(nowHeight);
            var precent = nowHeight/height;
            audio.volume = precent;
        }
 
        document.onmouseup = function(){
            document.onmousemove = null;
            document.onmouseup = null;
        }
    });
})();

上面的主要想法:宣告height變數先取得調整音量的滑動條的高度(設定的是80px),

給滑動條上的滑動塊綁定mousedown事件,取消其預設事件e.preventDefault();

聲明downHeight取得未滑動時的音量滑動條的高度, 宣告downY取得點擊位置距離視窗上方的y(垂直)方向距離var downY = e.clientY;

給整個dom新增mousemove事件,取消其預設事件e.preventDefault();

宣告moveY取得遊標移動到的位置距離視窗上方的y(垂直)方向距離var moveY = e.clientY;

聲明nowHeight取得調整後音量滑動條的高度var nowHeight = downY-moveY+downHeight;

#因為滑動條的高度為80px,所以在下面判斷了一下

if(nowHeight <=0){
nowHeight=0;//最小值为0(对应volume静音)
}else if(nowHeight>=height){
nowHeight=height;//最大值为80px(对应volume最大值1)
}

將調節後的音量條高度賦值給滑動條,實現調節時滑動條同步變換高度;

由於音量vojume的取值範圍( 0-1),讓nowHeight/height 得到調整後高度對總體高度的百分比,值為(0-1)

最後將這個值賦予audio.volume=nowHeight/height;

當調節結束後,放開滑鼠新增mouseup事件,將mousemove和mouseup事件都清空

以上是html5中關於volume屬性的使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn