为视频写简单的功能

本文介绍如何使用JavaScript和CSS实现视频的基本控制功能,包括播放/暂停、快进、快退、静音及截图等操作,并附带了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何用js/css来为一个视频写一些截屏,快进,快退,静音的简单的功能呢?

下面我来给大家安利一下代码:

<!DOCTYPE html>

<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>vedio</title>
	<link rel="stylesheet" href="css/vedio.css">


</head>
<body>
	<div id="main">
		<video id="video" src="mp4/OneRepublic - Counting Stars.mp4" 
		controls="controls" width="800"></video>
		<div class="bar">
		<div id="probar" style="width: 800px;"><div id="progress"></div></div>
			<button id="playorpause" onclick="PlayOrPause()">4</button>
			<button class="next" onclick="Next()">8</button>
			<button class="back" onclick="Prev()">7</button>
			<button class="muted0" onclick="Muted(this)">x</button>
			<input id="vol" type="range" min="0" max="1" step="0.1" onchange="Volume()">
			<button class="pic" onclick="CatchPicture()"><img src="images/截图.jpg" width="85%"></button>


		</div>
		<canvas id="canvas" width="300" height="200"></canvas>
	</div>
	
	<script type="text/javascript">
	var video = document.getElementById('video');
	//播放暂停
	function PlayOrPause(e) {
		if (video.paused) {
			video.play();
			event.target.innerHTML=';'
			event.target.style.color='red'
		}
		else{
			video.pause();
			event.target.innerHTML='4'
			event.target.style.color='green'
		}
	}


//前进和后退
	function Next(){
		video.currentTime += 60;
	}


	function Prev(){
		video.currentTime -= 60;
	}
//设置静音
	function Muted(){
		if (video.muted) {
			video.muted = false
			event.target.innerHTML='X'
			event.target.style.background='orange'
			document.getElementById('vol').value = video.volume
		}
		else{
			video.muted = true;
			event.target.innerHTML = 'x'
			event.target.style.background = 'white'
			document.getElementById('vol').value = 0
		}
	}
//设置声音
function Volume(){
	video.volume = event.target.value;
}


//进度条
function Progress(){
	var progress = document.getElementById("progress");
	progress.style.width = (video.currentTime/video.duration)*100+'%'
}
window.onload = function(){
	var progress = document.getElementById("progress");
	var probar = document.getElementById("probar");
	probar.addEventListener('click', progress_click)
	video.addEventListener('timeupdate', Progress)


}
function progress_click(){
	var progress = document.getElementById("progress");
	var w = parseInt(document.getElementById("probar").style.width);
	// alert(event.offsetX)
	if (event.offsetX) {
		video.currentTime = video.duration*(event.offsetX/w);
	}
	
}


function CatchPicture(){
	var canvas = document.getElementById("canvas");
	var ctx = canvas.getContext('2d');
	ctx.clearRect(0, 0, canvas.width, canvas.height);
	ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
}




	</script>
</body>
</html>
@charset = "UTF-8";
#main{
	width: 800px;
	height: 600px;
	padding: relative;
}


button{
	outline: none;
}


/*/*播放键控制区**/
.bar{
	border: 1px solid;
	position: relative;
	width: 100%;
	height: 15%;
	background: #ccc;
	border-radius: 10px;
	opacity: 0;//隐藏


}
.bar:hover{
	opacity: 1;//鼠标放上去出现
}
#playorpause, .next, .back, .muted0, #vol, .pic{
	display: block;
	background: orange;
	border-radius: 48px;
	cursor: pointer;
	position: absolute;
	font-family:"Webdings";
	font-size: 48px;
	color: green;
}


#playorpause{
	bottom: 20%;
	left: 45%;
}
.next{
	bottom: 20%;
	left: 55%;
}
.back{
	bottom: 20%;
	left: 35%;
}


.muted0{
	width: 48px;
	height: 48px;
	font-size: 42px;
	bottom: 23%;
	right: 25%;
	color: green;


}
#vol{
	width:20%;
	bottom: 40%;
	right: 2%;
}


.pic{
	bottom: 10%;
	left: 20%;
	background: orange;
	width: 60px;
}
#progress{
	position: absolute;
	height: 15px;
	width: 10px;
	background: aqua;
	border-radius: 10px;
	animation: keframe 1s linear infinite;
	
	
}
#probar{
	background: rgba(10, 30, 10, 0.3);
	height: 15px;
}


@keyframes keframe{
	0%{
		background-position:  0 0;
	}
	100%{
		background-position: 60px 10px;
	}
}

效果图:


可能写的比较简陋,毕竟初学嘛,大家不要见笑,以后还会有更优质的代码分享给大家的,嘿嘿!

<think>好的,我需要帮助用户创建一个简单视频播放网页,使用HTML和JavaScript。首先,我得回顾用户的需求和提供的引用内容。用户之前提到的引用中有关于视频播放列表、JavaScript处理点击事件以及视频循环播放的内容,这可能对当前问题有帮助。首先,用户需要的是一个基本的视频播放页面。我应该从HTML结构开始,包含一个视频元素和播放列表链接。根据引用[1],使用<a>标签作为播放列表项,并通过JavaScript处理点击事件来切换视频源。同时,引用[3]提到视频循环播放,可能需要设置loop属性,但用户可能暂时不需要自动切换视频,所以先专注于基本功能。接下来,结构方面,HTML需要包含<video>标签,设置controls属性让用户能操作播放播放列表可以用一组链接表示,每个链接指向不同的视频文件。JavaScript部分需要为这些链接绑定点击事件,当点击时更改视频的src属性,并开始播放。这里要注意阻止链接的默认行为,防止页面跳转,引用[1]中的示例也是这么处理的。然后,考虑代码的正确性。视频元素需要有ID,方便JavaScript获取。播放列表的链接应使用href指向视频URL,并在onclick事件中调用处理函数。函数需要接收事件对象,阻止默认动作,然后设置视频源并加载播放。可能需要用load()方法来加载源,play()来自动开始。样式方面,用户可能希望播放列表看起来整齐,添加一些CSS,比如列表样式、间距等,提升用户体验。不过用户主要关注功能,所以样式可以简单处理,但给出示例代码时还是包含基础样式较好。 测试不同的视频格式和浏览器兼容性也是需要考虑的,但用户的问题比较基础,可能暂时不需要深入这部分。先提供通用格式如MP4,确保主流浏览器支持。 最后,根据用户提供的引用,特别是引用[1]和[3],确保代码结构类似,处理点击事件和视频源切换正确。同时,可能需要提到如何扩展功能,比如添加自动播放或循环,但作为初始步骤,保持简单。总结步骤:HTML结构包含视频播放列表,JavaScript处理点击切换视频,CSS简单美化。然后验证代码是否正确,确保每个部分配合正常。最后生成相关问题,可能涉及样式优化、功能扩展等。</think>以下是创建简单视频播放网页的分步实现方案: ### 一、HTML基础结构 ```html <!DOCTYPE html> <html> <head> <title>视频播放器</title> <style> #video_player { width: 640px; margin: 20px auto; } #playlist { margin-top: 20px; list-style: none; padding: 0; } #playlist li a { color: #333; text-decoration: none; padding: 5px; display: block; } #playlist li a:hover { background-color: #eee; } </style> </head> <body> <div id="video_player"> <video id="mainVideo" width="640" height="360" controls> <source src="默认视频.mp4" type="video/mp4"> </video> <ul id="playlist"> <li><a href="视频1.mp4">视频1</a></li> <li><a href="视频2.mp4">视频2</a></li> <li><a href="视频3.mp4">视频3</a></li> </ul> </div> <script> // 下一部分插入JavaScript代码 </script> </body> </html> ``` ### 二、JavaScript交互逻辑 ```javascript document.addEventListener('DOMContentLoaded', function() { const video = document.getElementById('mainVideo'); const playlist = document.getElementById('playlist'); // 处理点击事件 playlist.querySelectorAll('a').forEach(link => { link.addEventListener('click', function(e) { e.preventDefault(); const source = this.getAttribute('href'); video.src = source; video.load(); video.play(); // 更激活状态 playlist.querySelectorAll('a').forEach(a => a.classList.remove('active')); this.classList.add('active'); }); }); // 自动播放下一视频(可选) video.addEventListener('ended', function() { const activeLink = playlist.querySelector('a.active'); const nextLink = activeLink?.parentElement.nextElementSibling?.querySelector('a'); if (nextLink) nextLink.click(); }); }); ``` ### 三、关键特性说明 1. **响应式布局**:通过CSS设置播放器居中显示,宽高自适应 2. **播放列表交互**:点击列表项自动切换视频源并开始播放[^1] 3. **视频续播功能**:通过`ended`事件监听实现自动播放下一视频[^3] 4. **状态反馈**:当前播放视频在列表中有高亮显示 ### 四、扩展建议 1. 添加视频预览缩略图 2. 实现进度条拖拽功能 3. 增加音量控制模块 4. 支持多种视频格式(WebM、OGG)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金州饿霸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值