html5拖拽应用记录及注意点


Posted in HTML / CSS onMay 27, 2020

下面通过代码给大家介绍html5拖拽应用记录,具体代码如下所示:

e.dataTransfer.setData("a","设置的值");
e.dataTransfer.getData("a");
function drop(e)
{
    <!--尝试console.log(e),这里能拿到好多你用得到的api-->
    e.dataTransfer.setData("a", e.target.id);
}

拖动元素

被拖动的元素上要加入入draggable="true"属性

一些注意点:

drop 必须配上 dragover,否则事件不生效

 

document.getElementById('right').ondragover = function (ev) {
    ev.preventDefault(); //阻止向上冒泡
}
document.getElementById('right').ondrop = function (ev) {
    ev.preventDefault(); //阻止向上冒泡
    console.log("放入");
}

react中使用事件必须是驼峰,例如:onDragOver

vue中在ui库组件上加的时候记得加 .native,例如:@drop.native

完整测试案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .div1{
            width: 200px;
            height: 200px;
            border: 1px solid red;
            position: relative;
            margin-left:20px;
            float: left;
        }
        .div2{
            width: 200px;
            height: 200px;
            border: 1px solid blue;
            position: relative;
            margin-left:20px;
            float: left;
        }
        .div3{
            width: 200px;
            height: 200px;
            border: 1px solid green;
            position: relative;
            margin-left:20px;
            float: left;
        }
        p{
            background-color: orange;
            margin-top: 5px;
        }
    </style>
</head>
<body>
<div class="div1" id="div1">
    <!--在h5中,如果想拖拽元素,就必须为元素添加draggable="true". 图片和超链接默认就可以拖拽-->
    <p id="pe" draggable="true">试着把我拖过去</p>
    <p id="pe1" draggable="true">试着也把我拖过去</p>
</div>
<div class="div2" id="div2"></div>
<div class="div3" id="div3"></div>
<script>
    /*学习拖拽,主要就是学习拖拽事件*/
    var p=document.querySelector("#pe1");
    var div2=document.querySelector("#div2");
    var div3=document.querySelector("#div3");
    /*应用于被拖拽元素的事件
    *ondrag         应用于拖拽元素,整个拖拽过程都会调用--持续
     ondragstart    应用于拖拽元素,当拖拽开始时调用
     ondragleave    应用于拖拽元素,当鼠标离开拖拽元素时调用
     ondragend    应用于拖拽元素,当拖拽结束时调用*/
    p.ondragstart=function(e){
        console.log("开始");
        e.dataTransfer.setDate("a")
    }
    p.ondragend=function(){
        console.log("结束");
    }
    p.ondragleave=function(){
        console.log("离开目标");
    }
    p.ondrag=function(){
        // console.log("持续触发---111111");
    }
 
    /*应用于目标元素的事件
    *ondragenter    应用于目标元素,当拖拽元素进入时调用
     ondragover    应用于目标元素,当停留在目标元素上时调用
     ondrop        应用于目标元素,当在目标元素上松开鼠标时调用
     ondragleave    应用于目标元素,当鼠标离开目标元素时调用*/
    div2.ondragenter=function(){
        console.log("进入目标1");
    }
    div2.ondragover=function(e){
        console.log(e);
        console.log("在目标1中盘旋");
        //console.log("ondragover");
        /*如果想触发ondrop事件,那么就必须在这个位置阻止浏览器的默认行为*/
        e.preventDefault();
    }
    /*浏览器默认会阻止ondrop事件:我们必须在ondragover中阻止浏览器的默认行为*/
    div2.ondrop=function(){
        console.log("锁定目标1,降落");
        /*添加被拖拽的元素到当前目标元素*/
        div2.appendChild(p);
    }
    div2.ondragleave=function(){
        console.log("离开目标1");
    }

    div3.ondragenter=function(){
        console.log("进入目标2");
    }
 
    div3.ondragover=function(e){
        console.log("在目标2中盘旋");
        //console.log("ondragover");
        /*如果想触发ondrop事件,那么就必须在这个位置阻止浏览器的默认行为*/
        e.preventDefault();
    }
    div3.ondrop=function(){
        console.log("锁定目标2,降落");
        /*添加被拖拽的元素到当前目标元素*/
        div3.appendChild(p);
    }
    div3.ondragleave=function(){
        console.log("离开目标2");
    }
</script>
</body>
</html>

总结

到此这篇关于html5拖拽应用记录的文章就介绍到这了,更多相关html5拖拽应用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
50个强大璀璨的CSS3/JS技术运用实例
Feb 27 HTML / CSS
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
Jun 06 HTML / CSS
CSS3中各种颜色属性的使用教程
May 17 HTML / CSS
解决margin 外边距合并问题
Jul 03 HTML / CSS
canvas学习笔记之2d画布基础的实现
Feb 21 HTML / CSS
检测浏览器是否支持html5视频的代码
Mar 28 HTML / CSS
移动HTML5前端框架—MUI的使用
Dec 18 HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
Mar 02 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
Sep 16 HTML / CSS
Html5页面获取微信公众号的openid的方法
May 12 HTML / CSS
Ratchet 模态框的实现
Aug 19 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
Nov 26 HTML / CSS
recorder.js 基于Html5录音功能的实现
May 26 #HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
May 26 #HTML / CSS
H5 video poster属性设置视频封面的方法
May 25 #HTML / CSS
html5中嵌入视频自动播放的问题解决
May 25 #HTML / CSS
HTML5 FileReader对象的具体使用方法
May 22 #HTML / CSS
HTML5 Blob对象的具体使用
May 22 #HTML / CSS
详解如何获取localStorage最大存储大小的方法
May 21 #HTML / CSS
You might like
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
详解python中的装饰器
2018/07/10 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
三维科技面试题
2013/07/27 面试题
2015年采购工作总结
2015/04/10 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书