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

  • 华为nova9怎么恢复出厂设置(华为nova9怎么恢复超级快充)

    华为nova9怎么恢复出厂设置(华为nova9怎么恢复超级快充)

  • 在微信直播买的东西去哪里看物流(在微信直播买的东西找客服不回怎么投诉)

    在微信直播买的东西去哪里看物流(在微信直播买的东西找客服不回怎么投诉)

  • vivox70pro通话自动录音怎么设置

    vivox70pro通话自动录音怎么设置

  • 苹果x微信怎么变成黑色(苹果x微信怎么加密码锁)

    苹果x微信怎么变成黑色(苹果x微信怎么加密码锁)

  • vivo勿扰模式闹钟会响吗(vivo 勿扰模式)

    vivo勿扰模式闹钟会响吗(vivo 勿扰模式)

  • 手机屏幕裂了抹牙膏(手机屏幕裂了抹胶水能修复吗)

    手机屏幕裂了抹牙膏(手机屏幕裂了抹胶水能修复吗)

  • 收音机没声音哪里坏了(收音机没有声音)

    收音机没声音哪里坏了(收音机没有声音)

  • airpods第一次充电注意(airpods第一次充电充多久)

    airpods第一次充电注意(airpods第一次充电充多久)

  • 微信投诉举报会封号吗(微信投诉举报会怎么处理)

    微信投诉举报会封号吗(微信投诉举报会怎么处理)

  • mp4格式用什么播放器打开(mp4格式用什么播放器)

    mp4格式用什么播放器打开(mp4格式用什么播放器)

  • 双十一期间没有极速退款了吗(双十一期间没有爆款佣金了吗)

    双十一期间没有极速退款了吗(双十一期间没有爆款佣金了吗)

  • 微信字体是什么字体(微信字体是什么字号)

    微信字体是什么字体(微信字体是什么字号)

  • qq连麦有办法录音吗(qq连麦有办法录屏吗)

    qq连麦有办法录音吗(qq连麦有办法录屏吗)

  • 手机没有陀螺仪有什么影响(手机没有陀螺仪导航准吗)

    手机没有陀螺仪有什么影响(手机没有陀螺仪导航准吗)

  • 华为手机进入语音模式怎么退出(华为手机进入语音)

    华为手机进入语音模式怎么退出(华为手机进入语音)

  • 荣耀9x前摄像头歪怎么解决(荣耀9X前摄像头能升起,拍照没反应)

    荣耀9x前摄像头歪怎么解决(荣耀9X前摄像头能升起,拍照没反应)

  • ios上怎么解压软件(苹果怎么解压软件)

    ios上怎么解压软件(苹果怎么解压软件)

  • 微信卸载如何恢复记录(微信卸载如何恢复)

    微信卸载如何恢复记录(微信卸载如何恢复)

  • 拼多多是腾讯的吗可以用大王卡吗(拼多多是腾讯的吗)

    拼多多是腾讯的吗可以用大王卡吗(拼多多是腾讯的吗)

  • 艺术边框怎么设置(艺术边框在哪设置)

    艺术边框怎么设置(艺术边框在哪设置)

  • matlab数据类型(matlab数据类型之间的转换)

    matlab数据类型(matlab数据类型之间的转换)

  • 百度贴吧如何隐藏帖子(百度贴吧如何隐藏ip)

    百度贴吧如何隐藏帖子(百度贴吧如何隐藏ip)

  • Linux系统下配置多个IP及检测IP冲突的方法(linux配置与管理教程)

    Linux系统下配置多个IP及检测IP冲突的方法(linux配置与管理教程)

  • 如何在Excel中运行多元回归分析(如何在excel中运算)

    如何在Excel中运行多元回归分析(如何在excel中运算)

  • 房产等价置换是否需要缴纳契税?
  • 小规模免缴增值税吗
  • 股权转让印花税税率
  • 未认证待抵扣进项税重分类
  • 所得税补缴怎么回事
  • 没有进项发票出口转内销
  • 发票上的销货方是什么意思
  • 小微企业减免所得税
  • 企业所得税研发费用怎么填
  • 购买空调的报销单怎么写
  • 字节跳动属于什么类型的企业
  • 关于处置固定资产的请示
  • 增值税纳税表销售额的填写
  • 上海2018房产税实施细则
  • 代收车船税是什么意思必须收吗
  • 增值税发票抵扣期限最新规定
  • 平销行为如何冲减进项税金
  • 企业所得税清算报备是什么意思
  • 小企业长期待摊费用包括哪些
  • 生产成本属于什么会计要素
  • 预提费用年底必须结转吗
  • 发票联和抵扣联丢失怎么办
  • 联想笔记本bios密码忘记了
  • 怎么取消网络手动连接
  • 如何快速判断
  • scchost.exe - scchost是什么进程 有什么用
  • windows商店下载不了
  • un system
  • 消费税的会计分录怎么写
  • 融资租入资产的入账价值可能是()
  • 民非企业保险支出包括
  • 固定资产清理如何计算增值税
  • vue2 vue-router 不显示页面问题
  • 公司法人和股东哪个承担的责任大
  • ruoyi框架快速入门
  • laravel入门与实战:构建主流php应用开发框架
  • vue框架总结
  • javascript教程
  • json有几种基本结构
  • sed命令大全
  • 应收账款结账损失怎么算
  • 可供出售金融资产的会计处理
  • 借款利息收入发票
  • 其他收益放在哪里
  • 织梦百科
  • 非独立核算与独立核算
  • 增值税加计扣除计入什么科目
  • 年金现值和终值的计算
  • sqlserver 批量修改
  • 金税四期监控银行卡
  • 固定资产收购方案案例
  • 个人独资企业个体工商户的区别
  • 2020年账簿印花税减免政策
  • 管理费用科目余额表有余额怎么办
  • 个人独资企业与一人公司的区别与联系
  • 维修费收入怎么结转销售成本
  • 收据 和发票
  • 党建信息的重要性
  • 食堂计入公务接待费
  • 无形资产的商誉是什么
  • sql连接查询实验报告
  • 深度解析桂附地黄丸
  • Windows Server 2008如何设置自动获取ip?设置自动获取ip教程
  • vmware img镜像
  • 电脑出现蓝屏后黑屏怎么办
  • WINDOWS操作系统内置的GUEST
  • 加载dll错误是什么意思
  • KunlunPlatform.exe是什么进程?KunlunPlatform.exe是安全的程序吗?
  • 彻底禁止win11自动更新
  • linux系统磁盘管理的主要内容
  • centos6 docker
  • win7开机桌面黑色
  • win 7系统无法删除系统文件
  • win73d设置怎么设置
  • 如何修改windows密码策略
  • cocos2dx吸蓝效果实现opengl绘制
  • java中遍历数组的方法
  • pycharm怎么学
  • python中对文件操作的一般步骤
  • 河北国家税务局官网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设