热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTML实例——简单的视频播放器

前两篇博文我们学习了HTML的表单事件与实现一个鼠标点击时,tab栏切换的实例今天我们来实现一个简单的视频播放器HTML——表单事件HTML举例-鼠标点击时

前两篇博文我们学习了HTML的表单事件与实现一个鼠标点击时,tab栏切换的实例
今天我们来实现一个简单的视频播放器

HTML——表单事件
HTML举例-鼠标点击时,tab栏切换


<html>
<head lang&#61;"en"><meta charset&#61;"UTF-8"><title>title><link rel&#61;"stylesheet" href&#61;"css/font-awesome.min.css"/><style>*{margin: 0;padding: 0;}/*多媒体标题*/figcaption{text-align: center;line-height: 150px;font-family: "Microsoft Yahei";font-size:24px;}/* 播放器*/.palyer{width: 720px;height: 360px;margin:10px auto;border: 1px solid #000;background: url(images/loading.gif) center no-repeat #000;background-size:auto 100%;position: relative;border-radius: 20px;}.palyer video{height:100%;display: block;margin:0 auto;/*display: none;*/}/* 控制条*/.controls{width: 700px;height:40px;background-color: rgba(255, 255, 0, 0.3);position: absolute;bottom:10px;left:10px;border-radius: 10px;}/*开关*/.switch{position: absolute;width: 20px;height: 20px;left:10px;top:10px;text-align: center;line-height: 20px;color:yellow;}/*进度条*/.progress{width: 432px;height: 10px;position: absolute;background-color: rgba(255,255,255,0.4);left:40px;top:15px;border-radius: 4px;overflow: hidden;}/* 当前进度*/.curr-progress{width: 50%;height: 10px;background-color: #fff;}/* 时间模块*/.time{width: 120px;height: 20px;text-align: center;line-height: 20px;color:#fff;position: absolute;left:510px;top:10px;font-size:12px;}/*全屏*/.extend{position: absolute;width: 20px;height: 20px;right:20px;top:10px;text-align: center;line-height: 20px;color:yellow;}style>
head>
<body><figure><figcaption>视频案例figcaption><div class&#61;"palyer"><video src&#61;"video/fun.mp4">video><div class&#61;"controls"><a href&#61;"#" class&#61;"switch icon-play">a><div class&#61;"progress"><div class&#61;"curr-progress">div>div><div class&#61;"time"><span class&#61;"curr-time">00:00:00span>/<span class&#61;"total-time">00:00:00span>div><a href&#61;"#" class&#61;"extend icon-resize-full">a>div>div>figure><script>// 思路&#xff1a;/** 1、点击按钮 实现播放暂停并且切换图标* 2、算出视频的总时显示出出来* 3、当视频播放的时候&#xff0c;进度条同步&#xff0c;当前时间同步* 4、点击实现全屏*/// 获取需要的标签var video&#61;document.querySelector(&#39;video&#39;);
// 播放按钮var playBtn&#61;document.querySelector(&#39;.switch&#39;);
// 当前进度条var currProgress&#61;document.querySelector(&#39;.curr-progress&#39;);
// 当前时间var currTime&#61;document.querySelector(&#39;.curr-time&#39;);
// 总时间var totalTime&#61;document.querySelector(&#39;.total-time&#39;);
// 全屏var extend&#61;document.querySelector(&#39;.extend&#39;);var tTime&#61;0;// 1、点击按钮 实现播放暂停并且切换图标playBtn.onclick&#61;function(){
// 如果视频播放 就暂停&#xff0c;如果暂停 就播放if(video.paused){
// 播放video.play();//切换图标this.classList.remove(&#39;icon-play&#39;);this.classList.add(&#39;icon-pause&#39;);}else{
// 暂停video.pause();
// 切换图标this.classList.remove(&#39;icon-pause&#39;);this.classList.add(&#39;icon-play&#39;);}}// 2、算出视频的总时显示出出来
// 当时加载完成后的事件&#xff0c;视频能播放的时候video.oncanplay&#61;function(){
// 获取视频总时长tTime&#61;video.duration;console.log(tTime);// 将总秒数 转换成 时分秒的格式&#xff1a;00&#xff1a;00:00
// 小时var h&#61;Math.floor(tTime/3600);
// 分钟var m&#61;Math.floor(tTime%3600/60);
// 秒var s&#61;Math.floor(tTime%60);// console.log(h);
// console.log(m);
// console.log(s);// 把数据格式转成 00:00&#xff1a;00h&#61;h>&#61;10?h:"0"&#43;h;m&#61;m>&#61;10?m:"0"&#43;m;s&#61;s>&#61;10?s:"0"&#43;s;console.log(h);console.log(m);console.log(s);
// 显示出来totalTime.innerHTML&#61;h&#43;":"&#43;m&#43;":"&#43;s;}
// * 3、当视频播放的时候&#xff0c;进度条同步&#xff0c;当前时间同步
// 当时当前时间更新的时候触发video.ontimeupdate&#61;function(){
// 获取视频当前播放的时间
// console.log(video.currentTime);
// 当前播放时间var cTime&#61;video.currentTime;
// 把格式转成00:00:00var h&#61;Math.floor(cTime/3600);
// 分钟var m&#61;Math.floor(cTime%3600/60);
// 秒var s&#61;Math.floor(cTime%60);// 把数据格式转成 00:00&#xff1a;00h&#61;h>&#61;10?h:"0"&#43;h;m&#61;m>&#61;10?m:"0"&#43;m;s&#61;s>&#61;10?s:"0"&#43;s;// 显示出当前时间currTime.innerHTML&#61;h&#43;":"&#43;m&#43;":"&#43;s;// 改变进度条的宽度&#xff1a; 当前时间/总时间var value&#61;cTime/tTime;currProgress.style.width&#61;value*100&#43;"%";}// 全屏extend.onclick&#61;function(){
// 全屏的h5代码video.webkitRequestFullScreen();}
script>
body>
html>


推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了解决IE678伪类不兼容问题的方法,包括少用CSS3和HTML5独有的属性,使用CSS hacker,使用last-child清除浮动、批量添加标签、去掉list item最后一个的border-right等技巧。同时还介绍了使用after清除浮动时加上IE独有属性zoom:1的处理方法。另外,本文还提到可以使用jQuery代替批量添加标签的功能,以及使用负边距和CSS2选择器element+element去掉list item最后一个的border-right的方法。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • CSS3 animation动画属性详解及用法
    本文详细介绍了CSS3 animation动画的各种属性及用法,包括关键帧动画、动画名称、动画时间、动画曲线、动画延迟、动画播放次数、动画状态和动画前后的状态等。通过本文的学习,读者可以深入了解CSS3 animation动画的使用方法。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
author-avatar
mobiledu2502875577
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有