document.addEventListener('drop', (e) => {
e.preventDefault();
}, false)
document.addEventListener('dragover', (e) => {
e.preventDefault();
}, false)
window.onload = () => {
let odrag = document.querySelector('.box');
//鼠标开始拖动<拖拽元素>时
//在<拖拽元素>上触发此事件
//监听器需要设置拖拽所需数据
//从操作系统拖拽文件到浏览器时不触发此事件
//dragstart
//鼠标拖动<拖拽元素>进入<拖放目标>时
//在<拖放目标>上触发
//用于给拖放元素设置视觉反馈
odrag.ondragenter = (e) => {
e.preventDefault();
e.target.setAttribute('data-drag', 'enter');
}
//鼠标拖动<拖拽元素>在<拖放目标>上移动时
//在<拖放目标>上连续触发
//监听器通过阻止浏览器默认行为设置元素为可拖放元素.
odrag.ondragover = (e) => {
e.preventDefault();
}
//鼠标拖动<拖拽元素>在<拖放目标>上移动时
//在<拖拽元素>上连续触发
//drag
//鼠标拖动<拖拽元素>移出<拖放目标>时
//在<拖放目标>上触发
//此时监听器可以取消掉前面设置的视觉效果
odrag.ondragleave = (e) => {
e.preventDefault();
e.target.setAttribute('data-drag', '');
}
//鼠标拖动<拖拽元素>在<拖放目标>上释放时
//在<拖拽元素>上触发
//将元素从浏览器拖放到操作系统时不会触发此事件
//dragend
//鼠标拖动<拖拽元素>在<拖放目标>上释放时
//在<拖放目标>上触发
//此时监听器需要收集数据并且执行所需操作
//如果是从操作系统拖放文件到浏览器,需要取消浏览器默认行为
odrag.ondrop = (e) => {
e.preventDefault();
let fileObj = e.dataTransfer.files[0];
console.log(fileObj);
}
}
drag and drop
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- UICollectionView是我们常说的集合视图,它在iOS 6中引入,是iOS开发者中最受欢迎的UI元素之一...
- 在上一篇文章中我们已经实现了用UIDragInteraction 和UIView的新属性pasteConfigur...