H5ke14--1--拖放

drag,drop

被拖动元素,目标(释放区)

元素要设置dragable属性:true,false,auto

被拖动元素上面有三个事件,drag,dragend,按下左键,移动种,鼠标松,这三个事件一般只用获取我们的被拖动元素

event是可以继承的,mouseevent鼠标事件,dragevent拖放事件,前面都是一个个继承的

释放区:

3个事件:拖动的东西可以放在释放区,进入释放区就会触发dragenter,区域移动触发dragover,出来dragleave,这三个事件一般只用获取我们的释放区元素1

放下事件drop


问题一:因为默认是不让你放入的

阻止事件的默认行为target.οndragenter=target.ondragover的event.preventDefault();

问题二:最终怎么实现要看drop

event.target出发时间的对象

拖的时候记录id

放时候打印

cloneNode进行放的时候克隆,true克隆子子孙孙,false只克隆自己

target.addEventListener("drop",(event)=>{event.target.appendChild(document.querySelector("#"+id));
})放下时候,目标元素加上我们的这个标签

代码三

重要:

对象的datatransfor,设置格式,传递东西用的

setData有两个参数:
1.第一个参数为携带数据的数据种类的字符串,只能填入类 似“text/plain”或“textml”的表示 MIME类型的文字
2.第二个参数为要携带的数据

实践,要冒泡的(子元素触发了同时触发父元素),一个表格要知道选定的id以及,目标地点的id

parentNode

drop用到inserbefore()节点就是行放到transfer

getElementById与queryselect,一个不要加id,,一个要加

1

   let source=document.querySelector("#source");source.addEventListener("dragstart",(event)=>{console.log("kaishi ")})source.addEventListener("dragend",(event)=>{console.log("jieshu")})source.addEventListener("drag",(event)=>{document.title=event.clientX+","+event.clientY;//我的标题设置为鼠标的坐标})

2

 let target=document.querySelector("#target");target.addEventListener("dragenter",(event)=> {console.log("进入目标")})target.addEventListener("dragover",(event)=> {console.log("目标ing")})//匿名函数,取消默认行为target.ondragenter=target.ondragover=function (event){event.preventDefault();} //复制图标target.addEventListener("dragleave",(event)=>{console.log("离开目标")})

3

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><style>#source{width: 200px;height: 200px;background: #eee;}#target{width: 400px;height: 400px;background: yellow;}</style><body><div id="source" draggable="true">  </div><div id="target" >  </div>
<script>let source=document.querySelector("#source");
let id;source.addEventListener("dragstart",(event)=>{// console.log("kaishi ")id=event.target.id;// console.log(id)obj=event.target;})//     source.addEventListener("dragend",(event)=>{//         console.log("jieshu")//     })////         source.addEventListener("drag",(event)=>{//             document.title=event.clientX+","+event.clientY;//我的标题设置为鼠标的坐标//         })//let target=document.querySelector("#target");target.addEventListener("dragenter",(event)=> {console.log("进入目标")})target.addEventListener("dragover",(event)=> {console.log("目标ing")})//匿名函数,取消默认行为target.ondragenter=target.ondragover=function (event){event.preventDefault();} //复制图标target.addEventListener("dragleave",(event)=>{console.log("离开目标")})target.addEventListener("drop",(event)=>{alert(event.target.outerHTML)alert(id);alert(document.querySelector("#"+id))// let newElement=document.querySelector(id).cloneNode(true);//被拖动达到目标元素// event.target.appendChild(document.querySelector("#"+id));//w1event.target.appendChild(obj);//w2})</script></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/258551.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙4.0开发笔记之ArkTS语法基础之数据传递与共享详细讲解(十八)

文章目录 一、路由数据传递&#xff08;router&#xff09;1、路由数据传递定义2、路由数据传递使用方法3、数据传递两个页面的效果 二、页面间数据共享&#xff08;EntryAbility&#xff09;1、定义2、实现案例3、避坑点 三、数据传递练习 一、路由数据传递&#xff08;router…

SAP物料会计视图的价格确定MLAST为空后台补录

物料10013812 工厂会计视图的价格确定为空&#xff0c;前台目前无法修改&#xff0c;申请修改底表&#xff0c;将价格确定调整为2 解决&#xff1a; 该字段涉及&#xff1a;MBEW表和CKMLHD表的MLAST字段两个地方&#xff0c;经修改后&#xff0c;前后台数据一致。 只改技术信…

自动化运维工具-ansible部署

首先我们来谈一下&#xff0c;为什么要引入自动化运维呢&#xff1f; 引入自动化运维的目的是为了提高运维效率、降低人工操作的错误率、减少重复性的工作、提高系统的可靠性和稳定性。传统的手动运维方式存在以下问题&#xff1a; 出现了大量的人工干预&#xff0c;运维人员需…

AI伦理专题报告:2023年全球人工智能伦理治理报告

今天分享的是人工智能系列深度研究报告&#xff1a;《AI伦理专题报告&#xff1a;2023年全球人工智能伦理治理报告》。 &#xff08;报告出品方&#xff1a;钛媒体国际智库&#xff09; 报告共计&#xff1a;239页 摘要 人工智能(ArtificialIntelligence)作为新一轮科技革命…

RepVGG,结构重参数化让VGG风格的ConvNets再次强大起来

论文&#xff1a;RepVGG Making VGG-style ConvNets Great Again 链接&#xff1a;https://arxiv.org/abs/2101.03697 代码链接&#xff1a;https://github.com/DingXiaoH/RepVGG 发表刊物&#xff1a;cvpr2021 作者&#xff1a;Xiaohan Ding, Xiangyu Zhang, Ningning Ma, Jun…

为什么Java程序员需要掌握多线程?揭秘并发编程的奥秘

为什么Java程序员需要掌握多线程&#xff1f;揭秘并发编程的奥秘 个人简介前言多线程对于Java的意义&#x1f4cc;1.提高程序性能&#xff1a;&#x1f4cc;2 提高用户体验&#xff1a;&#x1f4cc;3支持并发处理&#xff1a;&#x1f4cc;4 资源共享和同步&#xff1a;&#…

Nacos 2.3.0 正式发布,堪称最强!

Nacos 2.3.0的发布&#xff0c;可以说是一场关于配置管理的小型革命。它不仅仅是一个版本的迭代&#xff0c;更是一个桥梁&#xff0c;将我们熟悉的Nacos配置管理与Kubernetes的世界紧密相连。 Nacos 2.3.0的新亮点 在2.3.0-BETA版本的基础上&#xff0c;Nacos 2.3.0带来了以…

STM32CubeIDE(CUBE-MX hal库)----RTC时钟,时钟实时显示

系列文章目录 STM32CubeIDE(CUBE-MX hal库)----初尝点亮小灯 STM32CubeIDE(CUBE-MX hal库)----按键控制 STM32CubeIDE(CUBE-MX hal库)----串口通信 STM32CubeIDE(CUBE-MX hal库)----定时器 STM32CubeIDE(CUBE-MX hal库)----蓝牙模块HC-05&#xff08;详细配置&#xff09; 前言…

12.08

1.头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget(); signals:v…

Spring Boot实现接口幂等

Spring Boot实现接口幂等 1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

3亿人民币!欧洲高性能计算联合企业从德国开始建设量子生态

&#xff08;图片来源&#xff1a;网络&#xff09; 欧洲高性能计算联合企业&#xff08;EuroHPC JU&#xff09;已启动招标程序&#xff0c;准备在德国部署一台新型Euro-Q-Exa量子计算机。 Euro-Q-Exa系统将是一台基于超导量子比特和最先进的技术研发的量子计算机&#xff0…

snakeyaml编辑yaml文件并覆盖注释

文章目录 前言技术积累实战演示1、引入maven依赖2、覆盖注释工具类3、snakeyaml工具类4、测试用例5、测试效果展示 写在最后 前言 最近在做一个动态整合框架的项目&#xff0c;需要根据需求动态组装各个功能模块。其中就涉及到了在application.yaml中加入其他模块的配置&#…