位置: 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关于提交表单“数据校验不对”的解决办法(织梦设置的关键词看不到)

  • 拼多多满返活动怎么取消(拼多多满返活动手机怎么取消)

    拼多多满返活动怎么取消(拼多多满返活动手机怎么取消)

  • 长沙地铁app充值的钱怎么退(长沙地铁app充值的钱可以退吗)

    长沙地铁app充值的钱怎么退(长沙地铁app充值的钱可以退吗)

  • oppo手机扩大音量(oppo手机怎样加大音量)

    oppo手机扩大音量(oppo手机怎样加大音量)

  • 小米专注模式怎么退出(小米专注模式怎么强制退出)

    小米专注模式怎么退出(小米专注模式怎么强制退出)

  • 下载完文件夹怎么安装?(下载完文件夹怎么找回)

    下载完文件夹怎么安装?(下载完文件夹怎么找回)

  • 手机封号一般多久才可以用(手机封号多久可以自动解除)

    手机封号一般多久才可以用(手机封号多久可以自动解除)

  • 荣耀30 30s 区别(荣耀30和30s哪个性价比高)

    荣耀30 30s 区别(荣耀30和30s哪个性价比高)

  • qq能找回几年前的聊天记录吗(qq能找回几年前的说说吗)

    qq能找回几年前的聊天记录吗(qq能找回几年前的说说吗)

  • 淘宝自动确认收货时间是什么时候(淘宝自动确认收货时间是几天)

    淘宝自动确认收货时间是什么时候(淘宝自动确认收货时间是几天)

  • 酷喵vip能登录几个电视(酷喵vip能登录几台电视)

    酷喵vip能登录几个电视(酷喵vip能登录几台电视)

  • mg492ch a是三网通吗(mg482ch/a支持电信卡吗)

    mg492ch a是三网通吗(mg482ch/a支持电信卡吗)

  • 手机号165开头是什么(手机号165开头是哪里的号码)

    手机号165开头是什么(手机号165开头是哪里的号码)

  • iphone x的特殊功能(苹果x特色功能)

    iphone x的特殊功能(苹果x特色功能)

  • 酷狗繁星号是什么意思(酷狗里的繁星号是什么)

    酷狗繁星号是什么意思(酷狗里的繁星号是什么)

  • 华为有三维触控吗(华为三维触控在哪打开)

    华为有三维触控吗(华为三维触控在哪打开)

  • 苹果耳机怎么绑定icloud(苹果耳机怎么绑定id教程)

    苹果耳机怎么绑定icloud(苹果耳机怎么绑定id教程)

  • 怎么清除icloud储存(如何清除icloud储存)

    怎么清除icloud储存(如何清除icloud储存)

  • 激萌怎么添加外在音乐(激萌怎么添加好友)

    激萌怎么添加外在音乐(激萌怎么添加好友)

  • 索尼a73光圈在哪调(索尼a73光圈在哪设置)

    索尼a73光圈在哪调(索尼a73光圈在哪设置)

  • 苹果11运行内存是多少(苹果12运行内存)

    苹果11运行内存是多少(苹果12运行内存)

  • 货拉拉下单后怎么取消(货拉拉从哪下单)

    货拉拉下单后怎么取消(货拉拉从哪下单)

  • 手机淘宝回收站在那里(手机淘宝回收站删除的订单还能找回吗)

    手机淘宝回收站在那里(手机淘宝回收站删除的订单还能找回吗)

  • nova4nfc在哪(华为nove4nfc功能在哪找)

    nova4nfc在哪(华为nove4nfc功能在哪找)

  • 华为哪些手机支持5g(华为哪些手机支持hicar)

    华为哪些手机支持5g(华为哪些手机支持hicar)

  • 华为p30是不是自带膜(华为p30有自动定位吗)

    华为p30是不是自带膜(华为p30有自动定位吗)

  • Echarts图表使用后台数据不显示问题解决(echart怎么用)

    Echarts图表使用后台数据不显示问题解决(echart怎么用)

  • 最快的XQD存储卡是什么

    最快的XQD存储卡是什么

  • 正在睡觉的北极狐 (© Menno Schaefer/Getty Images)(北极熊睡觉图片卡通)

    正在睡觉的北极狐 (© Menno Schaefer/Getty Images)(北极熊睡觉图片卡通)

  • 全国增值税专用发票计算机稽核网络系统工程
  • 上级补助收入对应的支出科目是哪个
  • 主营业务收入明细表格模板
  • 货物运输费用怎么算
  • 小规模纳税人开具不动产发票税率
  • 模具费入什么会计科目
  • 个体小规模一般纳税人税率多少
  • 出口退税申报无电子信息
  • 没收租赁保证金开什么内容的发票
  • 预付账款发票到货未到怎么做账
  • 运输业应列入
  • 已经计提的坏账准备可以转回吗
  • 漏提折旧可以所得税扣除吗
  • 公司食堂买菜入什么科目
  • 企业大中小型划分最新标准
  • 高新企业财务做账要求
  • 金融公司一般有哪些业务
  • 红字发票通知单已经上传可以作废吗
  • 企业为员工购买团体医疗险可以全额税前扣除
  • 租赁合同印花税怎么交,一年一次吗
  • 贷款利息收到发票怎么办
  • 建筑设计公司的账务处理
  • 企业所得税税率2.5% 5% 25%
  • 废旧物资收购发票
  • 如果网页上有错字怎么办
  • 会计准则和会计法的关系
  • 什么是进项税和销项税
  • 公司购买一辆车
  • 手机cpu性能天梯图排行榜
  • 先征后返的会计分录
  • 诉讼费属于什么科目类别
  • 收回贷款本息是包含本金吗
  • 个人出租有形动产怎么交税
  • 蕾德纳斯
  • 办公用品开发票有哪些
  • php-xml
  • 如何查询数据库表空间
  • ps命令显示进程状态
  • ps怎么把图片套入样机快捷键
  • 复式记账法会计名词解释
  • 事业结余是事业单位当年全部收支相抵后的余额
  • 公章盖错在旁边加盖正确的说明
  • 建筑施工企业增值税老项目过度期成本票
  • 电子税务局税种核定在哪里
  • 织梦怎么建站
  • 工程项目开票金额和合同金额统计表
  • 递延收益的影响
  • 个税申报方式是什么意思
  • ms-sql-s
  • 先开票未发货要确认收入吗
  • 已经认证抵扣的发票会计分录
  • 资质平移股权账务怎么办
  • 长租公寓如何纳税
  • 工会赞助费
  • 客人在酒店
  • 税务局退以前年度的税款怎样记账
  • 外资企业计提盈余公积吗
  • 固定资产包括哪些东西
  • 商业企业库存商品
  • sql server 文件
  • 用命令创建文件夹
  • windows开机提示无法登录到你的账户
  • Windows 2003作中转VPN服务器多路由共享上网的方法
  • FreeBSD su Sorry问题解决办法
  • ubuntu16.04输入法
  • 命令行批量重命名
  • linux如何使用命令创建文件夹
  • win10升级win1
  • js入门基础
  • jquery从入门到精通