大家都知道vedio的contorls属性可以将video的控件显示出来,包括播放、暂停、进度条、声量控制、全屏显示等。但是出于需求,往往需要将某些控件外形变成我们想要图标(但功能一样),而不是全部使用vedio自带的控件图标。
下面这个例子,我将隐藏video自带的播放按钮,使用自定义的播放、暂停图标作为控件,下面这个例子是从awesome图标库下载的图片,大家自行选择!
播放图标下载地址为:play-circle – Font Awesome 中文网
为了读者能够一目了然地了解制作效果,下面展示gif动图效果:
HTML代码如下:
<div class="banner">
<div class="Banner">
<img src="images/icon.png" id="play_icon"></img>
<img src="images/pauseIcon.png" id="pause_icon"></img>
<!-- loop意思为循环播放, autoplay为自动播放 -->
<video src="video/show.mp4" id ="myVideo" loop="loop" preload="auto" muted="muted" controls="controls"></video>
</div>
</div>
功能实现思路:
1、第一次打开页面,播放图标(控件)显示,其他控件隐藏
使用css实现
/* 播放图标 */
#play_icon{
display: block;
position: absolute;
top: 160px;
left: 465px;
z-index: 3;
border-radius: 50%;
}
/* 暂停图标 */
#pause_icon{
/* 将暂停图标隐藏*/
display: none;
position: absolute;
top: 160px;
left: 465px;
z-index: 3;
border-radius: 50%;
/*设透明度为0*/
opacity: 0;
}
/* 将video控件的播放按钮隐藏 */
video::-webkit-media-controls-play-button {
display: none;
}
2、当鼠标悬浮于video标签上方,video的控件显示,反之,隐藏所有控件以及图标
使用js实现(温馨提醒:需要引入juqery库,才能使下面的代码起效果)
//当鼠标悬浮于视频的窗口时
$("#myVideo").mouseover(function(){
if(pauseIcon.style.display == "block"){
pauseIcon.style.opacity = 1;
}
if(playIcon.style.display == "block"){
playIcon.style.opacity = 1;
}
myVideo.controls = "controls";
});
//当鼠标移出视频的窗口时
$("#myVideo").mouseout(function(){
if(pauseIcon.style.display == "block"){
pauseIcon.style.opacity = 0;
}
if(playIcon.style.display == "block"){
playIcon.style.opacity = 0;
}
myVideo.controls = false;
});
3、当点击播放图标,隐藏播放图标、显示暂停图标,反之则反。
js实现:
//当播放图标被点击
playIcon.addEventListener("click",function(){
myVideo.play();
pauseIcon.style.display = "block";
playIcon.style.display = "none";
});
//当点击暂停图标时
$("#pause_icon").click(function(){
myVideo.pause();
pauseIcon.style.display = "none";
playIcon.style.display = "block";
});
完整代码:
css:
/* 播放图标 */
#play_icon{
display: block;
position: absolute;
top: 160px;
left: 465px;
z-index: 3;
border-radius: 50%;
}
#play_icon:hover{
cursor: pointer;
-webkit-filter: drop-shadow(0px 0px 10px white);
}
/* 暂停图标 */
#pause_icon{
display: none;
position: absolute;
top: 160px;
left: 465px;
z-index: 3;
border-radius: 50%;
opacity: 0;
}
#pause_icon:hover{
cursor: pointer;
-webkit-filter: drop-shadow(0px 0px 5px white);
}
video::-webkit-media-controls-play-button {
display: none;
}
js代码:
$(document).ready(function(){
var Banner = document.getElementsByClassName("Banner");
var myVideo = document.getElementById("myVideo");
var playIcon = document.getElementById("play_icon");
var pauseIcon = document.getElementById("pause_icon");
//当点击video窗口时
$("#myVideo").click(function(){
console.log(pauseIcon.style.display);
if(pauseIcon.style.display == "none" || pauseIcon.style.display == ""){
playIcon.style.display = "none";
pauseIcon.style.display = "block";
pauseIcon.style.opacity = 1;
}else{
pauseIcon.style.display = "none";
playIcon.style.display = "block";
}
});
//当播放图标被点击
playIcon.addEventListener("click",function(){
myVideo.play();
pauseIcon.style.display = "block";
playIcon.style.display = "none";
});
//当点击暂停图标时
$("#pause_icon").click(function(){
myVideo.pause();
pauseIcon.style.display = "none";
playIcon.style.display = "block";
});
//当鼠标悬浮于视频的窗口时
$("#myVideo").mouseover(function(){
if(pauseIcon.style.display == "block"){
pauseIcon.style.opacity = 1;
}
if(playIcon.style.display == "block"){
playIcon.style.opacity = 1;
}
myVideo.controls = "controls";
});
//当鼠标悬浮于暂停图标时
$("#pause_icon").mouseover(function(){
if(pauseIcon.style.display == "block"){
pauseIcon.style.opacity = 1;
}
myVideo.controls = "controls";
});
//当鼠标移出视频的窗口时
$("#myVideo").mouseout(function(){
if(pauseIcon.style.display == "block"){
pauseIcon.style.opacity = 0;
}
if(playIcon.style.display == "block"){
playIcon.style.opacity = 0;
}
myVideo.controls = false;
});
//当鼠标悬浮于播放图标时
$("#play_icon").mouseover(function(){
if(playIcon.style.display == "block"){
playIcon.style.opacity = 1;
}
myVideo.controls = "controls";
});
});
另外,由于例子中使用了css样式的一些知识,比如元素定位(postion)、模糊阴影(drop-shadow)、透明度(pacity)等属性。
因为本篇文章主要讲述video控件的使用,css的一些内容需要大家去理解,如果不理解可以私信我,有空的话都为大家解释一下这其中的原因.
如果大家需要例子完整代码资源,包括图片、视频MP3、jquery库等等,可以在以下微信公众号回复 “视频控件”即可获得!文章来源:https://www.toymoban.com/news/detail-481565.html
文章来源地址https://www.toymoban.com/news/detail-481565.html
到了这里,关于H5自定义video播放控件,播放暂停使用图标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!