网页视频轮播video

    最近,在项目的实际开发中,有遇到UI设计的视频轮播的效果,在实际解决之前,在网上查找了相关资料,有看到一篇CDSN的博客,有所启发,现根据实际遇到的问题,做如下记录。

一、实例相关情况介绍

          参考的实例效果如下所示:

   首先,总共有5个视频进行展示,点击左右按钮可以进行轮播切换,当前视频始终位于最上层,并且居中显示,div尺寸最大,第二层尺寸缩小,第三层再缩小显示。

二、运用的实例代码

 <div class="teaching-video">
        <div class="tea-video-title">
          <div class="tea-video-h1 text-center"><img src="images/tv2.png" style="width:47px;height:49px;">  教学视频</div>
          <h3 class="tea-video-h3 text-center">雄厚的师资力量是选择教育机构的重要因素</h3>
        </div>
        <div class="tea-video-cont">
				<div class="video">
					<div></div>
					<div>
					<ul>
						<li class="video1"><div><video preload="none" controls loop><source src="video/456.mp4"></source>您的浏览器不支持HTML5视频播放,请升级浏览器。</video><h3></h3></div></li>
						<li class="video2"><div><video preload="none" controls loop><source src="video/456.mp4"></source>您的浏览器不支持HTML5视频播放,请升级浏览器。</video><h3></h3></div></li>
						<li class="video3"><div><video preload="none" controls loop autoplay><source src="video/456.mp4"></source>您的浏览器不支持HTML5视频播放,请升级浏览器。</video><h3></h3></div></li>
						<li class="video4"><div><video preload="none" controls loop><source src="video/456.mp4"></source>您的浏览器不支持HTML5视频播放,请升级浏览器。</video><h3></h3></div></li>
						<li class="video5"><div><video preload="none" controls loop><source src="video/456.mp4"></source>您的浏览器不支持HTML5视频播放,请升级浏览器。</video><h3></h3></div></li>
					</ul>
					</div>
					<div></div>
				</div>
         </div> 
    </div>

.teaching-video{
	background-color:#ffffff;
	padding-top:50px;
	padding-bottom:50px;
}
.teaching-video .tea-video-title{
	margin:20px auto 50px;
}
.teaching-video .tea-video-title .tea-video-h1{
	font-size:30px;
	color:#ef7700;
	height:50px;
	line-height:50px;
}
.teaching-video .tea-video-title .tea-video-h3{
	font-size:16px;
	color:#666666;
}
.teaching-video .tea-video-cont{
	margin-bottom:50px;
}
.teaching-video li{list-style: none;}
.video{width:1200px;margin:0 auto;overflow: hidden;zoom:1;background: #ffffff;}
.video>div{float: left;height: 400px;}
.video>div:first-child {width: 5%;background: url(../images/video-btn-l.png) center center no-repeat;}
.video>div:last-child {width: 5%;background: url(../images/video-btn-r.png) center center no-repeat;}
.video>div:nth-of-type(2){width: 90%;}
.video ul{position: relative;}
.video li{transition: all .6s; position: absolute;background: url(../images/video-bg.png) center center no-repeat;background-size: 100% 100%;}
/*.video li>div{padding: 1% 1% 4%;}*/
.video li video{width:100%;height:100%;}
.video li h3{text-align: center;margin-top: 2px;color: #1766d7;}
.video li:nth-of-type(1) video{background: url(../images/video03.jpg) no-repeat;background-size: cover;}
.video li:nth-of-type(2) video{background: url(../images/video01.jpg) no-repeat;background-size: cover;}
.video li:nth-of-type(3) video{background: url(../images/video02.jpg) no-repeat;background-size: cover;}
.video li:nth-of-type(4) video{background: url(../images/video03.jpg) no-repeat;background-size: cover;}
.video li:nth-of-type(5) video{background: url(../images/video01.jpg) no-repeat;background-size: cover;}
.video1{width: 200px;height: 100px; top: 143px;left: 0; z-index: 1;}/*创建5个播放框初始位置类,可自行更改*/
.video2{width: 400px;height: 200px; top: 86px;left: 90px; z-index: 2;}
.video3{width: 700px;height: 350px; top: 0px;left: 190px; z-index: 3;}
.video4{width: 400px;height: 200px; top: 86px;left: 590px; z-index: 2;}
.video5{width: 200px;height: 100px; top: 143px;left: 880px; z-index: 1;}

<script type="text/javascript">
$(function(){
var click=0;
var right=0;      //解决第一次右边点击没反应
$('.video>div:first-child').click(function(){    //当点击左边按钮
for(var i=0; i<5; i++){
document.getElementsByTagName('video')[i].pause();}
click+=1;
if(click>=6)click=1;
right=1;
$('.video li:nth-of-type('+(((click+0)<=5) ? (click+0) : (click+0-5))+')').attr('class','video5');
$('.video li:nth-of-type('+(((click+1)<=5) ? (click+1) : (click+1-5))+')').attr('class','video1');
$('.video li:nth-of-type('+(((click+2)<=5) ? (click+2) : (click+2-5))+')').attr('class','video2');
$('.video li:nth-of-type('+(((click+3)<=5) ? (click+3) : (click+3-5))+')').attr('class','video3');
$('.video li:nth-of-type('+(((click+4)<=5) ? (click+4) : (click+4-5))+')').attr('class','video4');
})
$('.video>div:last-child').click(function(){  //当点击右边按钮
for(var i=0; i<5; i++){
document.getElementsByTagName('video')[i].pause();}
click-=1;
if(click<=0)click=5;
if(!right)click=4;  //解决第一次右边点击没反应
right=1;
$('.video li:nth-of-type('+(((click+0)<=5) ? (click+0) : (click+0-5))+')').attr('class','video5');
$('.video li:nth-of-type('+(((click+1)<=5) ? (click+1) : (click+1-5))+')').attr('class','video1');
$('.video li:nth-of-type('+(((click+2)<=5) ? (click+2) : (click+2-5))+')').attr('class','video2');
$('.video li:nth-of-type('+(((click+3)<=5) ? (click+3) : (click+3-5))+')').attr('class','video3');
$('.video li:nth-of-type('+(((click+4)<=5) ? (click+4) : (click+4-5))+')').attr('class','video4');
})
})
</script>

三、总结

      在实际测试的时候,发现当页面内容较多时,游览器加载完页面的视频区域时,视频就会自动播放,用户体验不是很好。在查阅资料的时候,发现采用预加载模式时,可以改善。(预加载的好处:因为等你播放的时候,会出现一段时间黑屏效果不是很好,采用预加载的方式,等到播放的时候就直接播放就可以了,服务器不处理的话,视频会等到全部下载完之后才会播放。)

     关于视频存放的方式:

    ①视频存放在自己的服务器上

    这也是我实际采用的方式,根据实际情况,这种方案适用于视频较小的情况下,可以采用预加载的模式;

    ②采用第三方网站进行托管视频

    这种适用于视频较大,但是使用量较小的情况,因为广告的问题,所以我们要在第三方视频网站进行开发者认证,这样就可以去掉首页的广告,视频所需的后端服务就由第三方网站进行提供,它们把视频进行转码,分片传输等,但是如果视频比较多,就得自己做后端服务了

    如果大家有更简便的方法,欢迎留言交流,感谢指点。如文章哪里有问题,欢迎大家进行指正。

版权声明:本文为博主原创文章,未经博主允许不得转载。

    

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以为您提供一个简单的在线轮播播放视频网页。 首先,我们需要使用 HTML 和 CSS 来创建网页布局和样式,然后使用 JavaScript 来实现视频轮播功能。 以下是一个基本的 HTML 模板: ```html <!DOCTYPE html> <html> <head> <title>在线轮播播放视频</title> <style> /* 添加样式 */ </style> </head> <body> <!-- 创建视频轮播容器 --> <div id="video-container"> <!-- 添加视频元素 --> <video id="video" controls autoplay></video> <!-- 添加视频标题 --> <h2 id="video-title"></h2> <!-- 添加视频列表 --> <ul id="video-list"></ul> </div> <!-- 引入 JavaScript 文件 --> <script src="script.js"></script> </body> </html> ``` 接下来,我们需要使用 CSS 添加样式: ```css /* 将轮播容器居中 */ #video-container { margin: 0 auto; max-width: 800px; text-align: center; } /* 设置视频样式 */ #video { max-width: 100%; } /* 设置视频标题样式 */ #video-title { margin-top: 20px; font-size: 24px; } /* 设置视频列表样式 */ #video-list { margin-top: 20px; padding: 0; list-style: none; display: flex; justify-content: center; } /* 设置视频列表项样式 */ #video-list li { margin: 0 10px; cursor: pointer; } ``` 最后,我们需要使用 JavaScript 实现视频轮播功能。以下是一个基本的 JS 文件: ```javascript // 获取视频元素和视频标题元素 const video = document.getElementById('video'); const videoTitle = document.getElementById('video-title'); // 获取视频列表元素和所有视频列表项元素 const videoList = document.getElementById('video-list'); const videoItems = videoList.getElementsByTagName('li'); // 定义视频数组和当前播放视频的索引值 const videos = [ { title: '视频1', src: 'video1.mp4' }, { title: '视频2', src: 'video2.mp4' }, { title: '视频3', src: 'video3.mp4' } ]; let currentVideoIndex = 0; // 绑定视频列表项的点击事件 for (let i = 0; i < videoItems.length; i++) { videoItems[i].addEventListener('click', function() { currentVideoIndex = i; playVideo(); }); } // 定义播放视频的函数 function playVideo() { // 获取当前播放视频的信息 const currentVideo = videos[currentVideoIndex]; // 设置视频标题和视频地址 videoTitle.innerText = currentVideo.title; video.src = currentVideo.src; // 播放视频 video.play(); } // 播放第一个视频 playVideo(); ``` 这样,一个基本的在线轮播播放视频网页就完成了。您可以根据自己的需求,添加更多的功能和样式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值