HTML5提供了內置的視頻播放控制項,其中videocontrolslist是其中一個很有用的屬性。videocontrolslist屬性可以用於告訴瀏覽器在視頻播放過程中應該顯示哪些默認的用戶界面控制項。下面我們將從幾個方面來介紹videocontrolslist的詳細使用。
一、啟用videocontrolslist
videocontrolslist屬性可以應用於video元素,使用它需要簡單的在HTML代碼中的video標籤中添加controlslist屬性,設置其值為顯示的控制項列表。默認情況下,video元素的controlslist屬性的值為empty。
<video src="example.mp4" controls controlslist="nodownload"></video>
上面的代碼顯示了controlslist屬性的一個例子,nodownload屬性值告訴瀏覽器在顯示控制項時不顯示「下載」按鈕。
二、控制videocontrolslist的顯示
控制videocontrolslist的顯示是非常簡單的,只需要設置videco-controls-list CSS偽類的display屬性即可。該屬性默認值為「block」,在下面的例子中,我們設置為「none」。這會將videocontrolslist完全隱藏起來,不顯示任何控制項列表。
video::-webkit-media-controls {
display:none !important;
}
video::-webkit-media-controls-enclosure {
display:none !important;
}
video::-webkit-media-controls-play-button {
display:none !important;
}
video::-webkit-media-controls-timeline {
display:none !important;
}
video::-webkit-media-controls-mute-button {
display:none !important;
}
video::-webkit-media-controls-volume-slider {
display:none !important;
}
video::-webkit-media-controls-current-time-display {
display:none !important;
}
video::-webkit-media-controls-time-remaining-display {
display:none !important;
}
video::-webkit-media-controls-fullscreen-button {
display:none !important;
}
三、控制videocontrolslist的布局
videocontrolslist的布局控制通常使用CSS來完成。在下面的例子中,我們使用了兩種不同的CSS樣式。第一個樣式定義了video整個控制項列表的樣式,第二個樣式定義了進度條控制項的樣式。
video::-webkit-media-controls {
background-color: rgba(255, 255, 255, 0.15);
color: #fff;
font-family: Arial, sans-serif;
text-shadow: 0 0 1px #000;
}
video::-webkit-media-controls-timeline-progress-bar {
background-color: red;
}
上面的代碼將videocontrolslist設置為了白色半透明背景和紅色進度條。
四、控制videocontrolslist的內容
videocontrolslist的內容可以輕鬆地通過JavaScript來修改。下面的例子演示了如何使用原生JavaScript訪問video元素和它的相關控制項,從而修改這些控制項的文本內容。
var video = document.getElementsByTagName('video')[0];
var controls = video.getElementsByTagName('div');
for (var i = 0; i < controls.length; i++) {
var control = controls[i];
switch (control.className) {
case 'currenttime':
control.innerHTML = '當前時間';
break;
case 'playpause':
control.innerHTML = '播放/暫停';
break;
case 'remainingtime':
control.innerHTML = '剩餘時間';
break;
case 'mute':
control.innerHTML = '靜音/取消靜音';
break;
case 'volumelevel':
control.innerHTML = '音量';
break;
case 'timeline':
control.innerHTML = '時間軸';
break;
case 'fullscreen':
control.innerHTML = '全屏';
break;
}
}
上面的代碼將videocontrolslist中的一些控制項的文本內容進行了修改。
五、CSS Hook
除上述方法外,我們還可以使用CSS Hook來控制videocontrolslist的每個方面。在下面的例子中,我們使用CSS Hook對視頻控制項進行了一些更改。
video::-webkit-media-controls-fullscreen-button,
video::-webkit-media-controls-volume-slider,
video::-webkit-media-controls-volume-mute-button {
background-color: rgba(0,0,0,0.4);
}
video::-webkit-media-controls-volume-slider {
background-color: rgba(255,255,255,0.7);
-webkit-appearance: none;
}
video::-webkit-media-controls-volume-slider::-webkit-slider-thumb {
background-image: -webkit-linear-gradient(top, #b2b2b2 0%, #fff 100%);
border: 1px solid #ccc;
border-radius: 2px;
height: 24px;
width: 10px;
}
上面的代碼使用CSS Hook對音量控制項進行了樣式更改(音量控制項的背景變為半透明黑色,滑塊通過漸變實現亮度變化等)。
六、結論
通過以上對videocontrolslist的詳細闡述,我們可以發現它是一個功能強大的屬性,可以幫助我們控制瀏覽器在視頻播放過程中應該顯示哪些默認的用戶界面控制項,而且它的使用非常靈活和可定製性強。我們可以根據實際需要在頁面中進行設置,以便更好地控制視頻播放的用戶體驗。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/250994.html
微信掃一掃
支付寶掃一掃