drag and drop

        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 拖放提供了一个简单的可视化机制,用户可以使用它来在应用程序之间和应用程序内部传输数据....
    托尼章阅读 3,813评论 0 4
  • UICollectionView是我们常说的集合视图,它在iOS 6中引入,是iOS开发者中最受欢迎的UI元素之一...
    pro648阅读 10,760评论 18 44
  • 在上一篇文章中我们已经实现了用UIDragInteraction 和UIView的新属性pasteConfigur...
    蜂猴阅读 1,165评论 0 1
  • 一.被拖动的元素 如何使一个元素变得可拖动 2.被拖动元素拖动事件 dragstart 按下鼠标准备拖动时...
    JamesSawyer阅读 1,102评论 0 0
  • 布拉格是欧洲一座著名的旅游城市,市内拥有为数众多的各个历史时期、各种风格的建筑,其中特别以巴洛克风格和哥特式更占优...
    野山草阅读 312评论 0 1