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 相关文章推荐
使用CSS实现阅读进度条
Feb 27 HTML / CSS
CSS3的文字阴影—text-shadow的使用方法
Dec 25 HTML / CSS
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
Feb 27 HTML / CSS
CSS3 :not()选择器实现最后一行li去除某种css样式
Oct 19 HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 HTML / CSS
HTML页面中添加Canvas标签示例
Jan 01 HTML / CSS
Html5大文件断点续传实现方法
Dec 05 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
Feb 19 HTML / CSS
移动端Html5页面生成图片解决方案
Aug 07 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
Jan 18 HTML / CSS
浅谈由position属性引申的css进阶讨论
May 25 HTML / CSS
Li list-style-image 图片垂直居中实现方法
May 21 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编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
php中hashtable实现示例分享
2014/02/13 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
jQuery上传插件webupload使用方法
2017/08/01 jQuery
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
Python模拟登录12306的方法
2014/12/30 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
学习python分支结构
2019/05/17 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
全神贯注教学反思
2014/02/03 职场文书
村居抓节水倡议书
2014/05/19 职场文书
党员示范岗材料
2014/12/19 职场文书
师德师风学习材料
2014/12/19 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
Python保存并浏览用户的历史记录
2022/04/29 Python