html5.0学习记录(一)——可拖动视频播放器

  最近自己在重新学习html5新特性,了解到有视频标签和拖动标签,于是自己用这两个特性写了一个小demo,主要功能就是可以通过拖动视频来直接播放。效果图如下:

  

  页面使用了<video>标签和drag,drop方法。左侧是动态渲染的视频列表,里面title包含着视频路径信息,右侧是视频播放器。

  js代码:

        // 拖拽开始
        function dragStart() {
            let e = window.event;
            e.dataTransfer.setData(‘video‘, e.target.title);
        }
        // 拖拽结束
        function dragover() {
            window.event.preventDefault();
        }
        // 拖拽结束放置
        function drop() {
            let e = window.event;
            e.preventDefault();
            // 获取到事件
            let src = e.dataTransfer.getData(‘video‘);
            document.getElementById(e.target.id).src = src;
        }
        // 页面加载完成渲染歌曲列表
        var COUNT = 8;
        window.onload = () => {
            let innerHtml = ‘‘, src = ‘‘, name = ‘‘;
            for (let i = 0; i < COUNT; i++) {
                name = ‘shipin(‘ + (i + 1) + ‘)‘;//拼接视频名称
                src = ‘static/shipin(‘ + (i + 1) + ‘).mp4‘;//拼接视频路径
                innerHtml += `<li title=${src} draggable=${true} id=‘drag${i}‘ ondragstart=javascript:dragStart()>${name}</li>`
            }
            document.getElementById(‘ul‘).innerHTML = innerHtml;
        }

  如上,定义了拖拽开始函数dragstart(),用于处理左侧被拖动元素的ondragstart事件,该函数把e.target.title保存起来,title就是被拖动视频的路径。然后是dragover()函数,用于拖动结束后阻止默认的事件,以便被拖动的元素能放置在video标签中。然后是drop()函数,用于video标签,即被放置元素中,该函数在放置时候执行,拖动结束后将会用getData获取之前保存起来的title路径,然后利用gerElementById.src把路径赋值给video标签。实现视频的拖动播放。  

页面代码:

    <div class="main">
        <!-- 左侧视频数据列表 -->
        <div class="aside">
            <ul id="ul"></ul>
        </div>
        <!-- 右侧播放器 -->
        <div class="play">
            <video id="video" ondrop="drop()" ondragover="dragover()" src="" controls="controls" autoplay=‘autoplay‘></video>
        </div>
    </div>

  主要难点:

  1.如何在动态拼接的多个li标签中调用定义的dragstart函数,这里使用了语句:ondragstart=javascript:dragStart()。

  2.如何获取li的event对象,这里没有直接把event作为对象从dragstart方法传过去,会报错,而是在函数中通过window.event获得该事件对象。

原文地址:https://www.cnblogs.com/oujiamin/p/9154802.html

时间: 2024-10-28 11:14:47

html5.0学习记录(一)——可拖动视频播放器的相关文章

tempo 2.0 学习记录

最近在做项目时使用了tempo,感觉还不错,但是发现网上对于tempo 2.0 的介绍比较少,我也是在GitHub才找到了比较完整的使用说明,我也简单记录一下自己的使用过程,重新学习一下tempo 2.0 , 不喜勿喷,喜欢看英文的朋友请移步tempo 2.0 英文说明 . 1.引入tempo.js <script src="js/tempo.js" type="text/javascript"></script> 2.准备数据Data(标准

libgdx学习记录16——资源加载器AssetManager

AssetManager用于对游戏中的资源进行加载.当游戏中资源(图片.背景音乐等)较大时,加载时会需要较长时间,可能会阻塞渲染线程,使用AssetManager可以解决此类问题. 主要优点: 1. 大多数资源加载器AssetLoader都是异步加载,可以避免阻塞渲染线程. 2. 通过引用计数来进行释放资源. 3. 通过一个对象来管理所有其他资源. 主要函数: load(path,type)加载某个路径的资源文件,后面type指定所要加载的资源类型.这个函数只是将资源文件加入到资源队列中,并不会

FFMPEG+SDL2.0流媒体开发3---简易MP4视频播放器,提取MP4的H264视频序列解码并且显示

简介 之前写了一遍提取MP4中的音视频并且解码,这一篇引入SDL2.0来显示解码后的视频序列 实现一个简易的 视频播放器. 我这里用的FFMPEG和SDL2.0都是最新版的 可能网上的资料不是很多,API接口也变了很多,不过大体的思路还是一样的. 分析几个FFMPEG函数 在这之前我们分析几个代码中可能引起疑问的FFMPEG几个函数的源代码,我已经尽我的能力添加了注释,因为实在没有文档可能有的地方也不是很详尽  不过大体还是能看懂的 av_image_alloc (分配图片缓冲区) 我们在FFM

Effective Objective-C 2.0 学习记录

由于最近入职,公司安排自由学习,于是有时间将Effective Objective-C 2.0一书学习了一遍.由于个人知识面较窄,对于书中有些内容无法理解透彻,现将所学所理解内容做一遍梳理,将个人认为常用且重要的知识记录下来,以供日后参考. 1.在类的头文件中尽量少引入其他头文件 将头文件引入的时机尽量延后,在确有需要的时才引入(比如.m文件中).因为头文件中引入其他类头文件,会增加编译时间(可能是现在运行硬件比较好,所所以对此点没啥感觉).在头文件中若要使用其他类,则用"向前声明"-

AngularJS 2.0 学习记录(一)

开始认真学习ng2了,之前看了一下typescript,没有太大感触,还是直接练手学习得快.

.net core 2.0学习记录(一):搭建一个.Net Core网站项目

.Net Core开发可以使用Visual Studio 2017或者Visual Studio Code,下面使用Visual Studio 2017搭建一个.net Core MVC网站项目. 一.新建项目 二.选择 Web应用程序(模型视图控制器) 三.项目结构和之前的比对还是有很大的不同,wwwroot用来存放前端的一些静态资源(css/js/image),以前是通过Nuget来下载前后端包,现在前端包使用Bower下载,后端的包的使用Nuget下载 四.运行 .net core项目调试

Spark2.0学习记录

Hadoop与Spark的关系: ------------------- Spark 与mapReduce的区别: mapReduce和spark的内存结构: ------------------- spark替代hive区别: spark替代hive的查询引擎 ------------------- Spark Steaming 与 Storm 的区别: Spark Steaming 与 Storm模型对比 原文地址:https://www.cnblogs.com/gxyandwmm/p/11

手把手教你做视频播放器(一)

前言 通过"计算器"应用我们已经熟悉了安卓应用开发的大致流程,具备了开发的初步知识. 接下来,我们将开始制作一个"视频播放器"应用,进一步加深对程序开发的学习. 当完成这个"视频播放器"应用后,大家就能够独立开发一类稍微复杂点的安卓应用了. 本文针对的读者是: 对安卓开发有了初步认识,但还没有什么经验的新人: 对已有的安卓开发经验没有系统化整理的开发者: 在开始以前,假设各位已经做好了如下准备: 一台开发用笔记本电脑,并搭建好了开发环境: 一部安

HTML5与CSS3权威指南之CSS3学习记录

title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) 官方网站: 华章图书 书中所有代码下载链接: 链接:http://pan.baidu.com/s/1c0oGMn2 密码:f7zt 选择器 属性选择器 [att=val]选择器--选择属性att值为val的元素 [att*=val]选择器--选择属性att值包含val的元素 [att^=val]选择器--选