位置: IT常识 - 正文

纯原生html编写的h5视频播放器(将原生html改成vue)

编辑:rootadmin
#snail-player-native 一个纯原生代码编写的h5视频播放器, 功能完善,基本满足使用,仅供学习,禁止商用 演示 演示加速 Install 1. git clone https://github.com/snail-boy/snail-player-native.git 2. 拷贝l ... snail-player-native一个纯原生代码编写的h5视频播放器, 功能完善,基本满足使用,仅供学习,禁止商用

推荐整理分享纯原生html编写的h5视频播放器(将原生html改成vue),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:html原型,html原生标签,html原生表格,html原型,将原生html改成vue,html原型,原生html开发,原生html组件,内容如对您有帮助,希望把文章链接给更多的朋友!

演示

纯原生html编写的h5视频播放器(将原生html改成vue)

演示加速

Install1. git clone https://github.com/snail-boy/snail-player-native.git2. 拷贝lib目录下的文件到自己项目里Usage

直接运行index.html

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> #snailPlayId { width: 800px; height: 500px; margin: 0 auto; } h1 { text-align: center; } </style></head><body><h1>snail-player</h1><div id='snailPlayId'></div></body><script type="module"> import SnailPlayer from "./lib/index.js"; new SnailPlayer({ el: '#snailPlayId', src: 'https://webrabbit.oss-cn-beijing.aliyuncs.com/drawingbed/video.mp4', autoplay: true, // 是否自动播放 loop: true // 是否循环播放 })</script></html>Some Codemain.js// 计算进度条时间progressTime(offsetY) { return utils.formatSeconds((offsetY / this.progressw * this.playVideo.duration).toFixed(2))}// 进度条计算公式progressCalculate() { return (this.progressw / this.playVideo.duration * this.playVideo.currentTime).toFixed(2)}// 全屏fullScreenFun() { const docElm = document.documentElement if (!this.isFullScreen) { utils.addClass(this.el, 'fullscreen-active') utils.addClass(this.playVideo, 'fullscreen-active') utils.showClass('snail-player-full-screen-icon') utils.hiddenClass('snail-player-fullscreen-btn') utils.changeInnerText('fullscreen-icon', '退出全屏') utils.addClass(this.playBottom, 'sn-player-fullscreen-bottom-active') setTimeout(() => { if (docElm.requestFullscreen) { docElm.requestFullscreen(); } else if (docElm.mozRequestFullScreen) { docElm.mozRequestFullScreen(); } else if (document.webkitRequestFullScreen) { docElm.webkitRequestFullScreen(); } }, 100) this.isFullScreen = true utils.hiddenClass('snail-player-web-fullscreen-box') } else { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } utils.showClass('snail-player-web-fullscreen-box') utils.removeClass(this.el, 'fullscreen-active') utils.removeClass(this.playVideo, 'fullscreen-active') utils.hiddenClass('snail-player-full-screen-icon') utils.showClass('snail-player-fullscreen-btn') utils.changeInnerText('fullscreen-icon', '进入全屏') utils.removeClass(this.playBottom, 'sn-player-fullscreen-bottom-active') this.isFullScreen = false }}index.js//加载cssrenderCss(url) { var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.type='text/css'; link.rel = 'stylesheet'; link.href = url; head.appendChild(link);}//加载faviconrenderIcon(url) { var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.type='type="image/x-icon"'; link.rel = 'shortcut icon'; link.href = url; head.appendChild(link);}Utilsclass Utils { hasClass(ele, cls) { return !!ele.className.match(new RegExp('(\s|^)' + cls + '(\s|$)')) } addClass(ele, cls) { if (!this.hasClass(ele, cls)) ele.className += ' ' + cls } removeClass(ele, cls) { if (this.hasClass(ele, cls)) { const reg = new RegExp('(\s|^)' + cls + '(\s|$)') ele.className = ele.className.replace(reg, '') } } set(key, value) { localStorage.setItem(key, value) } get(key) { return localStorage.getItem(key) } showClass(cls) { cls ? document.getElementsByClassName(cls)[0].style.display = 'block' : new Error('请输入类名') } hiddenClass(cls) { cls ? document.getElementsByClassName(cls)[0].style.display = 'none' : new Error('请输入类名') } changeInnerText(cls, text) { document.getElementsByClassName(cls)[0].innerHTML = text } clickfu(to, cls){ //回调函数,to为点击对象 to.setAttribute("class",cls); const siblings = to.parentNode.childNodes; for(let i=0; i<siblings.length; i++) if(siblings[i].nodeType == 1 && siblings[i] != to)siblings[i].className = ''; } formatSeconds(value) { if(!value) return '00:00' value = parseInt(value); let time; if (value > -1) { let hour = Math.floor(value / 3600); let min = Math.floor(value / 60) % 60; let sec = value % 60; let day = parseInt(hour / 24); if (day > 0) { hour = hour - 24 * day; time = day + "day " + hour + ":"; } else if (hour > 0) { time = hour + ":"; }else { time = ""; } if (min < 10) { time += "0"; } time += min + ":"; if (sec < 10) { time += "0"; } time += sec; } return time; } classEle(cls) { return cls && document.getElementsByClassName(cls)[0] }}export default UtilsFunction按空格键暂停播放点击屏幕暂停播放视频进度条拖拽,区分颜色鼠标移动到进度条上方显示时间视频快进慢放视频声音控制画中画整屏播放双击全屏播放等运行环境支持es6的各种浏览器最好用chrome源码地址,欢迎star

github地址

gitee地址

欢迎留言issues

Issues

本文链接地址:https://www.jiuchutong.com/zhishi/313363.html 转载请保留说明!

上一篇:织梦生成文章内容缩略图时自动加上绝对路径教程(织梦内容页模板修改)

下一篇:织梦DEDECMS关于提交表单“数据校验不对”的解决办法(织梦设置的关键词看不到)

  • 淘宝服装店推广攻略(淘宝服装店推广文案)

    淘宝服装店推广攻略(淘宝服装店推广文案)

  • 我和“冬天”有个约定(我和冬天有个约会手抄报)

    我和“冬天”有个约定(我和冬天有个约会手抄报)

  • 小米盒子遥控器怎么配对(小米盒子遥控器失灵手动修复教程)

    小米盒子遥控器怎么配对(小米盒子遥控器失灵手动修复教程)

  • 快手怎么搜索内容视频(快手搜索东西怎么搜索)

    快手怎么搜索内容视频(快手搜索东西怎么搜索)

  • airpods滴滴响(airpods滴滴响怎么关)

    airpods滴滴响(airpods滴滴响怎么关)

  • 小红书举报人知道是谁吗(小红书举报人知道吗)

    小红书举报人知道是谁吗(小红书举报人知道吗)

  • 光纤路由器和普通路由器的区别(光纤路由器和普通路由器区别)

    光纤路由器和普通路由器的区别(光纤路由器和普通路由器区别)

  • 抖音直播赞有什么用(抖音直播获得赞有钱吗)

    抖音直播赞有什么用(抖音直播获得赞有钱吗)

  • 淘宝一心升二心要多久(淘宝1心升到3心要买多少东西)

    淘宝一心升二心要多久(淘宝1心升到3心要买多少东西)

  • 手机被摔后无法开机(手机被摔后无法开机怎么办)

    手机被摔后无法开机(手机被摔后无法开机怎么办)

  • 淘宝的天猫超市发什么快递(淘宝的天猫超市卡哪来的钱)

    淘宝的天猫超市发什么快递(淘宝的天猫超市卡哪来的钱)

  • vivo微信分身怎么设置(vivo微信分身怎么弄)

    vivo微信分身怎么设置(vivo微信分身怎么弄)

  • 苹果8相机设置16比9(苹果8相机设置时间水印)

    苹果8相机设置16比9(苹果8相机设置时间水印)

  • 手机卡三个月不用怎么处理(手机卡三个月不用就自动注销了吗)

    手机卡三个月不用怎么处理(手机卡三个月不用就自动注销了吗)

  • 蓝牙耳机怎么调双声道(蓝牙耳机怎么调成中文)

    蓝牙耳机怎么调双声道(蓝牙耳机怎么调成中文)

  • 手机存储模式下不可用怎么解决(手机的存储模式不可用是怎么回事)

    手机存储模式下不可用怎么解决(手机的存储模式不可用是怎么回事)

  • 确认收货后退款麻烦吗(确认收货后退款评价还有吗)

    确认收货后退款麻烦吗(确认收货后退款评价还有吗)

  • 快手戳戳啥意思(快手的戳)

    快手戳戳啥意思(快手的戳)

  • 数字证书包含的内容(数字证书包含的内容不包括证书的版本信息)

    数字证书包含的内容(数字证书包含的内容不包括证书的版本信息)

  • 手机信号hd是啥(手机信号的hd是什么意思?)

    手机信号hd是啥(手机信号的hd是什么意思?)

  • 红米note7怎么刷回以前系统(红米note7怎么刷机)

    红米note7怎么刷回以前系统(红米note7怎么刷机)

  • 电脑qq消息管理器在哪里(电脑qq消息管理器的临时会话)

    电脑qq消息管理器在哪里(电脑qq消息管理器的临时会话)

  • 微信图标有个勾怎么取消(微信图标有个勾是什么意思)

    微信图标有个勾怎么取消(微信图标有个勾是什么意思)

  • hibernate和mybatis区别(hibernate和mybatis的优缺点)

    hibernate和mybatis区别(hibernate和mybatis的优缺点)

  • 如何正确使用好笔记本电池(如何正确使用好薪酬调查结果)

    如何正确使用好笔记本电池(如何正确使用好薪酬调查结果)

  • 中级财务管理与注会财务管理
  • 外地预缴的附加税怎么算
  • 资本公积转增资本会引起什么变化
  • 税务鉴定收费标准
  • 高新企业收到政府补贴怎么做账
  • 增值税电子普通发票怎么作废
  • 销售收入是不是营业收入
  • 苗木属于农产品中哪一类
  • 废旧物资增值税税收优惠政策
  • 增值税销项税额影响入账金额吗
  • 公司零申报怎么注销
  • 费用类都有哪些账户
  • 报销筹建期间的房租押金怎么做会计分录?
  • 发票失控怎么处罚
  • 债权投资的账务处理步骤
  • 企业缴纳印花税会计分录
  • 施工企业工作流程
  • 月末增值税怎么计算
  • 年初未交增值税借方怎么处理
  • 装修费可以作为开办费吗
  • 在建工程暂估转固定资产
  • 个税汇算清缴包含退休金吗
  • 结转基本生产成本
  • 手机home键是什么意思图片
  • 应收账款的内容包括
  • 生产用厂房计入什么科目
  • php提高性能
  • 本期用于购建不动产的扣税凭证怎么填
  • 0x0000001e蓝屏代码的含义
  • git可以管理二进制文件吗
  • php数据库删除数据
  • js获取网页链接
  • vue3打包优化
  • php读取文件
  • php常用数组函数有哪些
  • 装修费还没摊销完就搬家了
  • 年报写歇业 可以写多久
  • php 数组相加
  • react roter
  • vue el-
  • gfortran编译命令
  • 筹办分公司
  • 税务登记需要的手续
  • 工资税预扣
  • 从物资公司购入原木的进项税额
  • 个税返还款增值税税率
  • 非限定性净资产和限定性净资产的区别
  • 公司租赁个人车辆租金多少合适
  • 仓库员工工资
  • 无票销售纳税后怎么处理
  • 工会经费的使用应当依法接受国家的监督
  • 航天信息何去何从
  • 外汇申报材料
  • 母子公司往来款是否涉及交税
  • 如何建立明细分类账
  • 小规模纳税人转为一般纳税人的流程
  • mysql的增删改查命令
  • mysql8.0 主从
  • Win7 64位旗舰版系统打开应用程序提示“发生未知的软件异常0xc06d007e”的解决方法
  • windows vista home basic
  • win102020h2版本
  • xp系统升级成win7还会卡吗
  • pythoni脚本
  • 使用jsonp跨域,服务端如何改
  • jquery中遍历指定的对象和数组是哪个方法
  • 深入理解javascript特性
  • js中input怎么用
  • 基于javascript的毕业设计
  • python入坑指南
  • python讲解
  • 广东省国家税务总局班子成员
  • 广东省电子居住证怎么查看
  • 消费税的纳税义务的发生时间是如何规定的
  • 国家税务局河北省税务局
  • 深圳北站哪里取纸质票
  • 减免性质代码怎么填写才正确
  • 四川国税发票查验真伪
  • 乡镇经管站是如何工作
  • 长途汽车车次号
  • 文件印发的格式怎么设置
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设