响应式开发HTML5CSS3实现视频播放器的功能案例

news/2024/5/20 14:21:19/文章来源:https://blog.csdn.net/weixin_59042297/article/details/130298280

 目录

前言

一、本视频播放器需要实现的功能

​二、代码分布结构

三、部分主要代码

1.index01.html

2.video1.css

3.video1.js

四、images图片资源及视频

五、运行效果


前言

1.本文讲解的响应式开发技术(HTML5+CSS3+Bootstrap)的HTML5视频播放器等功能方法的代码,这也是很多教材的一个典型案例;

2.本文将讲解涉及到HTML5表单等功能方法的知识点,其它方面会大致讲一下;

3.本代码是使用visual Studio Code编写的,其他软件如DW,HBX等都是可以的;

4.运行浏览器是谷歌,同时推荐使用谷歌浏览器;

5.这个案例是我上学跟老师所讲做出来的,有些地方不是很完美,请见谅也请多赐教,若程序出现问题请指教,我在吸取经验、改正文档;

6.该博文代码及文件内容同步到了我的资源当中,有需要可以下载,直接导包使用;

7.这个是我上学跟老师所讲做出来的若侵权,请联系删除!


提示:以下是本篇文章正文内容,下面案例可供参考

响应式开发(HTML5 CSS3)视频播放器功能

上述视频为本文最终实现的效果 

一、本视频播放器需要实现的功能

1.显示播放、暂停,视频时长、进度条、全屏、单击进度条跳转视频等

2.触碰选择栏,颜色由浅变深的效果

2.1未触屏图示

2.2触碰图示

二、代码分布结构

仅供参考:

结构
文件名称二级结构三级结构
视频播放器案例cssvideo1.css
jsvideo1.js
jsjquery.min.js
imageszzzz,jpg
fonts

font-awesome.css

videoxcp.mp4
index01.html

三、部分主要代码

1.index01.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>视频播放器案例</title><link rel="stylesheet" href="fonts/font-awesome.css"><link rel="stylesheet" href="css/video1.css">
</head>
<body><figure><figcaption>欢迎观看本视频!</figcaption><div class="player"><video src="video/xcp.mp4"></video><div class="controls"><a href="javascript:;" class="switch fa fa-play"></a><div class="progress"><div class="line"></div><div class="bar"></div></div><div class="timer"><span class="current">00:00:00</span><span class="xg">/</span><span class="total">00:00:00</span></div><a href="javascript:;" class="expand fa fa-arrows-alt"></a></div></div></figure><script src="js/jquery.min.js"></script><script src="js/video1.js"></script>
</body></html>

2.video1.css

body{width: 100%;height: 100%;background: url(../images/zzzz.jpg);padding: 0;margin: 0;font-family: 宋体;
}
a{text-decoration: none;}figcaption{font-size: 24px;text-align: center;margin-top: 30px;margin-bottom: 20px;
}
video{display: none;height: 100%;margin: 0 auto;
}
.player{width: 1050px;height: 590px;margin: 0 auto;border-radius: 4px;position: relative;
}
.controls{width: 700px;height: 40px;background: #fff;border-radius: 4px;position: absolute;left: 50%;margin-left: -350px;bottom: 5px;opacity: 0.5;
}
.player:hover .controls{
opacity: 1;
}
.controls .switch{display: block;width: 20px;height: 20px;color: #f00;position: absolute;left:  11px;top: 11px;
}
.controls .expand{display: block;width: 20px;height: 20px;color: rgb(43, 0, 255);position: absolute;right: 11px;top: 11px;
}
.progress{width: 430px;height: 10px;border-right: 3px;overflow: hidden;background: #555;cursor: pointer;position: absolute;top: 16px;left: 45px;
}
.progress .line{width: 10px;height: 100%;background: #f00;position: absolute;left: 0px;top: 0px;
}
.progress .bar{width: 100%;height: 100%;opacity: 0;position: absolute;left: 0;top: 0;z-index: 1;
}
.timer{height: 20px;line-height: 20px;position: absolute;left: 490px;top: 11px;color: #f00;font-size: 14px;
}

3.video1.js

var video = $("video").get(0); function formatTime(time) {var h = Math.floor(time / 3600);var m = Math.floor(time % 3600 / 60);var s = Math.floor(time % 60);return (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s);}video.oncanplay = function () { $("video").show(); var totalTime = formatTime(video.duration);$(".total").html(totalTime);
}$(window).resize(function () {if (!checkFull()) {$('.expand').addClass("fa-arrows-alt").removeClass('fa-compress')}
});$(".switch").on("click", function () {if ($(this).hasClass("fa-play")) { video.play(); $(this).addClass('fa-pause').removeClass("fa-play"); } else { video.pause(); $(this).addClass("fa-play").removeClass('fa-pause');}
})
$(".bar").on("click", function (event) {var offset = event.offsetX;var current = offset / $(this).width() * video.duration;video.currentTime = current;
})$(document).keypress(function (event) {var code = (event.keyCode ? event.keyCode : event.which);if (video != "" && (code == 13 || code == 32)) {if (video.paused) {video.play();$('.switch').addClass('fa-pause').removeClass("fa-play");} else {video.pause();$('.switch').addClass('fa-play').removeClass("fa-pause");}}
});video.ontimeupdate = function () {var w = video.currentTime / video.duration * 100 + "%";$(".line").css("width", w);$(".current").html(formatTime(video.currentTime));
}
$(".expand").on("click", function () {if ($(this).hasClass("fa-arrows-alt")) {$(".player").get(0).requestFullscreen();  $(this).addClass('fa-compress').removeClass("fa-arrows-alt");} else {document.exitFullscreen();$(this).addClass("fa-arrows-alt").removeClass('fa-compress');}
})function checkFull() {var isFull = document.webkitIsFullScreen;if (isFull === undefined) {isFull = false;}return isFull;
}

 font-awesome.css和jquery.min.js这里就不提供了,因为这个文件的代码特别多,有需要请在网上或我的资源中下载,我会把这些代码及文件都发布到我的资源当中

四、images图片资源及视频

视频来源网络,我采用的是中国辽宁宣传片,这个可以根据自己的要求进行下载视频,并更改。

这里要特别说明,该视频来源网络,若涉及侵权,请联系删除!

五、运行效果

运行图片如下,仅供参考:

1.显示视频

响应式开发(HTML5 CSS3)视频播放器功能

2.显示效果

 3.播放效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_290370.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AIPRM for ChatGPT插件让ChatGPT如虎添翼

ChatGPT大热&#xff0c;家人们都申请到了账号&#xff0c;可是总是在一问一答的基础上来完成基本的应用&#xff0c;而不能很好的使用「咒语」&#xff08;Prompt&#xff09;&#xff0c;收获的答案不是通过很多次的反复问获取答案&#xff0c;就是获取的不是想要的答案。所以…

【HCIP】Huawei设备下IPV4IPV6共存实验

目录 方法一、普通的GRE将V6基于V4通讯 方法二、6to4的tunnel 方法三、双栈 方法一、普通的GRE将V6基于V4通讯 //方法一和方法二的前提&#xff0c;搭个简单的V4网络就行 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip address 12.1.1.1 24 [r1]router id 1.1.1.1 [r1-Gigabi…

分布式数据一致性解决方案推理过程

redis是一个极轻量级的进程&#xff0c;单机单线程单进程。 使用redis很容易实现分布式锁&#xff1a;setnx&#xff0c;同一个key&#xff0c;谁设置成功了&#xff0c;谁就抢到了锁&#xff0c;所以就产生了多锁问题。 假设客户端1抢到了锁&#xff0c;redis挂了&#xff0c…

不懂就问,Milvus 新上线的资源组功能到底怎么样?

在近期更新的 Milvus 2.x 版本中&#xff0c;我们上线了在社区中呼声一直很高的【资源组功能】。有了这个功能&#xff0c;用户再也不需要“为每个 collection 部署一套 Milvus 服务”的方案&#xff0c;轻松实现对 Query Node 资源进行分组管理&#xff0c;达到物理资源隔离的…

运行时内存数据区之执行引擎(一)

执行引擎概述 执行引擎是Java虚拟机核心的组成部分之一。 “虚拟机”是一个相对于“物理机”的概念&#xff0c;这两种机器都有代码执行能力&#xff0c;其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的&#xff0c;而虚拟机的执行引擎则是由软…

「计算机控制系统」6. 直接设计法

特殊类型系统的最小拍无差设计 一般系统的最小拍无差设计 最小拍控制器的工程化改进 Dahlin算法 文章目录 特殊类型系统的最小拍无差设计理论分析典型输入函数的最小拍无差系统 一般系统的最小拍无差设计有波纹最小拍无差设计无波纹最小拍无差设计 最小拍控制器的工程化改进针对…

浅析商场智能导购系统功能与实施效益

商场智能导购系统是一种基于物联网技术和人工智能算法的解决方案&#xff0c;旨在提供商场内部的智能导购服务&#xff0c;为消费者提供个性化的购物导引和推荐&#xff0c;提升用户购物体验&#xff0c;增加商场的客流量和销售额。 商场智能导购系统的方案一般包括以下主要功能…

LeetCode 27.移除元素

文章目录 &#x1f4a1;题目分析&#x1f4a1;解题思路&#x1f6a9;思路1:暴力求解 --- 遍历&#x1f514;接口源码&#xff1a;&#x1f6a9;思路2:空间换时间&#x1f514;接口源码&#xff1a;&#x1f6a9;思路3:双指针&#xff08;快慢指针&#xff09;&#x1f514;接口…

tftp+Filezilla文件双向传输(1)-centos(VMware)-win10(host)

目录 1.下载安装vsftpdtftptftp-server 2.配置服务 2.1 配置服务 修改文件 /etc/vsftpd.conf 2.2 配置服务 守护进程 /etc/xinetd.d/tftp 2.3 配置服务 tftp服务器 2.4 配置登录用户 2.4.1 修改selinux 2.4.2 匿名用户登录 2.4.3 新建账户&#xff0c;不能登陆系…

Linux时间服务器(ntp)

1.配置ntp时间服务器&#xff0c;确保客户端主机能和服务主机同步时间 2.配置ssh免密登陆&#xff0c;能够通过客户端主机通过redhat用户和服务端主机基于公钥验证方式进行远程连接 一.配置ntp时间服务器&#xff0c;确保客户端主机能和服务主机同步时间 1、软件安装 [rootl…

Liunx下进程间通信

文章目录 前言1.进程间通信相关介绍2.管道1.匿名管道2.管道的原理3.通过代码来演示匿名管道4.命名管道5.命名管道的原理6.命名管道代码演示 3.System V共享内存1.共享内存原理2.相关系统接口的介绍与共享内存的代码演示3.共享内存的一些特性 4.system V消息队列与system V信号量…

TryHackMe-Services(Windows域渗透)

Services 认识团队&#xff01; 今天thm新出的房间&#xff0c;尝尝鲜 端口扫描 循例nmap 把services.local加入hosts Web枚举 发现员工邮箱以及一些员工姓名 从下边的邮箱中&#xff0c;大致可以猜测其他员工账户名跟这个一致的格式 将其保存起来 立足 - AS-REP Roasting…

Linux基础—日志分析

Linux基础—日志分析 一、日志的功能1.日志消息的级别2.设备字段说明 二、日志文件的分类1.内核及系统日志2.用户日志3.程序日志 三、日志文件1.日志文件查看2.主要日志文件介绍3.日志管理策略 一、日志的功能 用于记录系统、程序运行中发生的各种事件 通过阅读日志&#xff0c…

2023第十四届蓝桥杯 C/C++大学生A组省赛 满分题解

写在前面 以下代码&#xff0c;目前均可通过民间OJ数据&#xff08;dotcpp & New Online Judge&#xff09;&#xff0c; 两个OJ题目互补&#xff0c;能构成全集&#xff0c;可以到对应链接下搜题提交&#xff08;感谢OJ对题目的支持&#xff09; 如果发现任何问题&…

论文各子结构的实现

本文将简明介绍人工智能论文各子结构的实现方法&#xff0c;重点指出了各部分实现时的要点&#xff0c;帮助读者高效地完成论文的写作。 1. 标题 论文标题的确定必须遵循明确而有吸引力的原则。论文的题目需要准确反映自己论文的研究内容和创新点&#xff0c;同时还必须具有吸…

【LeetCode: 1027. 最长等差数列 | 暴力递归=>记忆化搜索=>动态规划】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

(算法基础)完全背包问题

完全背包问题 完全背包问题就是在背包问题大逻辑前提之下&#xff0c;给定的n个物品没有个数的限制。对于完全背包问题的状态表示与01背包问题是一样的&#xff0c;f(i, j)&#xff0c;这个二维的集合表示&#xff1a;在前i个物品当中去选择&#xff0c;并且总体积小于等于j&a…

android 布局优化

1.绘制和布局加载原理 本文仅供个人学习记录&#xff0c;详细介绍可查看下面链接 Android布局优化&#xff0c;多套方案全面解析 布局优化的原因&#xff1a;布局嵌套过深&#xff0c;或者其他原因导致布局渲染性能不佳&#xff0c;可能会导致应用卡顿。 android绘制原理&am…

taobao.item.carturl.get( 加购URL获取 )

&#xffe5;开放平台免费API可选用户授权 获取加购URL&#xff0c;支持添加商品到购物车 公共参数 请求地址: 公共请求参数: 公共响应参数: 点击获取key和secret 请求参数 请求示例 响应示例 异常示例

java版UWB人员定位系统源码,提供位置实时显示、历史轨迹回放、电子围栏、行为分析、智能巡检等功能

运用UWB定位技术开发的人员定位系统源码 文末获取联系&#xff01; 本套系统运用UWB定位技术&#xff0c;开发的高精度人员定位系统&#xff0c;通过独特的射频处理&#xff0c;配合先进的位置算法&#xff0c;可以有效计算复杂环境下的人员与物品的活动信息。 提供位置实时显…