h5 拖放 | Filereader | 音频、视频 | 地理信息

613 阅读2分钟

拖放 drag

在标签中添加draggable="true",标签即可拖动。

七个事件

1.ondragstart 拖放开始
2.ondrag 拖放中
3.ondragend 拖放结束
4.ondragenter 拖拽其他元素进入绑定事件的元素(从鼠标进入算进入)
5.ondragover 拖拽其他元素进入绑定事件的元素后(持续发生,同ondrag)
6.ondragleave 拖拽其他元素离开绑定事件的元素(从鼠标离开算离开)
7.ondrog 拖拽其他元素到绑定事件的元素中松开


看完上面gif图的 有没有发现, 前三个事件都触发了, 为啥第四个事件,drop 不会触发呢? 为什么在黑框里面放置红方块不会触发,在外面放置也不会触发?
这是因为,ondragover这个事件有一个默认行为,在 ondragover的最后默认被拖拽的元素回到原位(我是这么理解的),这样就解释了,在被绑定元素中松开了拖拽元素,没有触发ondrog而是触发了ondragleave。
如果你想完成的操作是,把红色的块放到我们绑定事件的盒子中松开 从而触发事件ondrog,那么就阻止ondragover的默认行为
box.ondragover = function(e){
e.preventDefault();
console.log('over');
}
这样就可以触发ondrog。
同时,阻止了ondragover的默认行为后,把红色的块放到我们绑定事件的盒子中松开这个操作不再触发ondragleave,只触发ondrog。
更多参考: www.cnblogs.com/yanggeng/p/…

Filereader

q是上传按钮,q.files是一个数组,是上传文件的数组

添加属性multiple按钮就可上传多个文件

不传参event也可以和上面一样写

必须有这一步转码不然无法触发onload,也就是说这一步才是读取的灵魂,才会有onload读取完毕。

读取文件的方法

读取文件可以触发的事件

音频、视频

移步: www.w3school.com.cn/tags/html_r…
h5标签 audio

h5标签 video

地理信息

一方面要发布到服务器上进行使用。

另一个方面发布到服务器上以后一定是https协议才可以的

getCurrentPosition() 方法 - 返回数据

Geolocation 对象 - 其他有趣的方法

推荐阅读下面这个文章

blog.csdn.net/Jioho_chen/…

h5的地理位置获取局限性太低

Canvas和svg比较