js拖拽事件

JavaScript拖拽和拖放事件对象详解 拖拽和拖放是Web开发中常见的交互行为,JavaScript提供了一些事件对象来处理这些操作。本文详细介绍了拖拽事件对象和拖放事件对象,并提供了相应的示例代码。通过使用这些事件对象,我们可以轻松地实现拖拽和拖放功能,以及处理相关的逻辑操作。在这篇文章中,我们将详细讨论JavaScript中的拖拽和拖放事件对象。拖拽和拖放是Web开发中常见的交互行为,它们可以使用户通过拖动元素来改变其位置或与其他元素交互。请注意,以上示例代码是基于原生JavaScript编写的,可以直接在支持拖拽和拖放事件的浏览器中运行。 阅读详情

javascript 事件之拖拽事件

首先,在了解拖拽事件之前我们先了解一下,拖拽事件都会用到哪些知识。
在拖拽目标上发生的事件(源元素)

ondragstart用于元素开始被拖拽
ondrag元素正在被拖拽
ondragend用户完成拖拽事件后

释放目标后发生的事件:

ondragenter当鼠标拖动目标对象进入到目标容器中触发该事件
ondragover当某对象在另一个容器中被拖拽时触发该事件(已经从被拖拽进来,又开始被拖拽)
ondragleave当鼠标拖动元素离开其容器时触发该事件
ondrop在鼠标拖动过程中释放鼠标后触发事件

这是拖拽事件的基本知识点,下面我们根据具体事例进行演练


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>javascript事件篇之拖拽事件</title>
		<style type="text/css">
			.dragtarget
			{
				width: 200px;
				height: 100px;
				text-align: center;
                  border: 1px solid #000;
				  float: left;
				  margin: 10px 10px;
			}
		</style>
		<script type="text/javascript">
			function dragStart(event)
			{
				event.dataTransfer.setData("Text",event.target.id);//当开始拖拽时获取目标元素id
			}
			function dragging(event)
			{
				document.getElementById('demo').innerHTML="文本内容正在被拖动";
			}
			function allowdrag(event)
			{
				event.preventDefault();
			}
			function drop(event)
			{
				event.preventDefault();
				var data = event.dataTransfer.getData("Text");
				event.target.appendChild(document.getElementById(data));
				document.getElementById("demo").innerHTML="文本已经到另一个容器中";
			}
		</script>
	</head>
	<body>
		<p>下面有两个div容器</p>
		<div class="dragtarget" ondragover="allowdrag(event)" ondrop="drop(event)">
			<p draggable="true" ondragstart="dragStart(event)" ondrag="dragging(event)" id="con">我是内容</p>
		</div>
		<div class="dragtarget" ondragover="allowdrag(event)" ondrop="drop(event)">
			
		</div>
		<p id="demo"></p>
	</body>
</html>

具体介绍:
首先,html部分简单的布局了两个div容器,其中一个div中容纳了一个p标签,第一个div中的p标签中要写上id,下面会讲解为什么会加上id,并且给改元素加上draggable属性,将其设置为true,(意思是将该元素设置为可拖动),我们试想一下,p标签好比是我们,容器是火车站,当我们开始拖拽目标元素时,就是用到dragstart,他需要获取到该元素的具体信息,也就是id和元素类型,用到了,event.dataTransfer.setData(),其中dataTransfer是数据传输,传输的内容用setData来设定(format,id)这时用到id,因为id是我们获取信息的标识,这就是火车站里面的站牌信息,什么时候开始上车,当我们了解到站台信息时开始上车。
那另一个容器就是目的地,我们下车时也需要过安检,看看人家能否让你通过,这时就用到了preventDefault()方法,(不阻止默认动作),当鼠标松下时我们允许他放置,这时就用到了ondrop()。放下时我们需要在另一个容器中添加目标元素,appendchild(添加一个子节点)
具体演示:

在这里插入图片描述

F280049C Buffered Digital-to-Analog Converter (DAC) 使用DAC模块很简单,只需要配置参考电压,并写入DACVALS寄存器一个数字值即可。参考电压可配置为外部参考VDAC和内部参考电压1.65V和2.5V,并结合增益作为DAC模块最终的参考电压DACREF。举个例子,配置参考电压为内部参考电压1.65V,增益设置为2,则参考电压DACREF=3.3V,若向DACVALS写入数字值2048,则输出的DAC模块的输出带电压DACOUT=DACVALS×DACREF4096=1.65VDACOUT= 阅读详情

相关推荐

Gazebo仿真UUV水下机器人:从环境搭建到避障算法实战

本文详细介绍了使用Gazebo仿真平台进行UUV水下机器人开发的全流程,涵盖从环境搭建、uuv_simulator配置、传感器集成到核心避障算法实战。通过搭建水下仿真实验室并实现基于激光雷达数据的反应式避障算法,为水下机器人算法验证与开发提供了高效、低成本的解决方案。

weixin_28840591的博客 264

js 拖拽检测

&lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt; &lt;title&gt;无标题文档&lt;/title&gt; &lt;style&gt; #div1 {widt

qq_35187942的博客 711

【视频编码学习】AVS3参考软件HPM-4.1简单配置运行

1、用Visual Studio2017打开HPM-4.1文件夹 2、找到文件夹目录下x86_windows文件夹,因为是在win上运行该代码 3、然后找到对应vs版本(我当时2017版)的解决方案sln文件,双击打开可以看到该解决方案下的全部项目。 4、重新生成解决方案时发现提示sdk版本问题,所以右键点击所有的项目,选择重定向项目,修改一下sdk版本。 ...

谦虚勤奋诚实感恩 3100

Js中六种拖拽(拉)事件(drag 和 drop)

拖拽事件(待更新) 前言(各个浏览器的兼容性) 1.兼容性如下图: 一、相关的五个事件api如下: 拖拽流程说明: 1.dragstart事件 2.dragenter事件 3.dragover事件 4.drop事件(必须要dragover事件触发) 5.dragend事件 MDN详细说明: 链接如下 如下图所示: 二、相关的属性 1.draggable(让元素可拖拽) draggable解释说明: 使用代码如下: 如下图所示: 2.dataTransfer(对应的拖拽媒介) 解释说明(通用方法):

weixin_46022934的博客 1万+

保姆级教程:用PyBullet和Stable-Baselines3搞定你的第一个机器人强化学习项目

本文提供了一份详细的PyBullet和Stable-Baselines3教程,帮助开发者快速上手机器人强化学习项目。通过环境配置、自定义Gym环境构建、PPO算法参数优化及模型部署的全流程解析,读者将掌握从零开始训练四足机器人 locomotion 任务的完整技术方案。

weixin_26861329的博客 420

SAP采购订单中项目类别B(限制)的控制逻辑

在笔者所在企业中,框架类采购订单中项目类别需要选择B(限制)。今天笔者从比较全面的角度分析了一下这个项目类别B到底可以决定些什么?控制到什么?先从后台SPRO中打开相应的配置菜单。 打开项目类别B之后,可以看到一些配置信息,这里有一点与其它配置不同的地方,即无法新增项目,也无法修改现有项目。这个疑惑今后再去解决吧。当前只研究项目类别B的控制逻辑。 下面就参考上图中的配置分段来分析和测试其控制逻辑, 1、如项目类别配置图,所需材料值为不允许;经测试,如下图在采购订单创建时,不能输入物料编号条目。

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 6032

案例一:javascript的拖拽事件(drag,drop)

一、拖拽效果如下步骤所示 1.正常的排序如下: 2.拖拽列表1与列表2互换位置 常按的效果如下图: 切换位置后的效果如下图: 二、具体代码如下 1.HTML部分代码块 2.javascript部分代码块 3.js代码说明: 总结:下面的🔗是跳转到案例二(关于 表格的拖拽的效果)

weixin_46022934的博客 4911

Unity游戏开发:从零开始适配Nintendo Switch的完整指南

本文详细介绍了如何使用Unity进行Nintendo Switch游戏开发的完整流程,包括开发环境搭建、Unity工程适配、手柄与硬件特性开发、存储与性能优化等关键步骤。特别强调了Switch SDK的配置、输入系统改造和内存优化技巧,帮助开发者高效完成跨平台适配。

vodka的博客 1069

javascript学习之拖拉事件

所有拖拉事件的实例都有一个属性,用来读写需要传递的数据。这个属性的值是一个接口的实例。浏览器原生提供一个构造函数,用来生成实例对象。构造函数不接受参数。拖拉的数据分成两方面:数据的种类(又称格式)和数据的值。数据的种类是一个 MIME 字符串(比如text/plainimage/jpeg),数据的值是一个字符串。一般来说,如果拖拉一段文本,则数据默认就是那段文本;如果拖拉一个链接,则数据默认就是链接的 URL。拖拉事件开始时,开发者可以提供数据类型和数据值。拖拉过程中,开发者通过。

白话机器学习 1854

STM32实战开发(110):基于STM32的智能地震监测系统开发

地震监测系统是自然灾害预警体系中至关重要的一部分。随着地震灾害的频发和对自然灾害预测精度要求的提高,智能地震监测系统逐渐成为研究的热点。STM32作为一款高性能的微控制器,凭借其强大的处理能力和丰富的外设接口,在地震监测领域中得到了广泛应用。本篇文章将详细介绍如何使用STM32实现一个智能地震监测系统的开发过程,涵盖硬件设计、软件编程、系统实现及相关代码。通过集成加速度传感器、地震数据采集、实时数据处理和无线数据传输功能,我们可以设计一个高效、稳定的智能地震监测系统。

2201_76125393的博客 710

Android16 动态隐藏systemUI右侧音量条

本文介绍了如何屏蔽SystemUI系统音量条并显示自定义音量控制条的实现方法。主要通过两个步骤:1)在编译脚本中定义控制属性persist.rp.show.volume.dialog=off来隐藏系统音量条;2)修改SystemUI源码中的VolumeDialogImpl.java文件,在showH方法中根据属性值判断是否显示系统音量条。当属性值为off时直接return,从而屏蔽系统音量条的显示,实现自定义音量控制条的替代显示。该方法通过系统属性控制显示状态,具有灵活可控的特点。

tzj1058756809的博客 779

JS的拖拽事件

拖拽原理 实现原理: 改变元素的top值和left值 ; 拖拽的三大事件: onmousedown 鼠标按下 onmousemove 鼠标移动 onmouseup 鼠标释放 这3个事件写拖拽在PC上是需要嵌套的。 话不多说,送上2种方式的代码,如下: 第一种方法 原理 根据以上原理实现托拽的代码如下: obj.onmousedown = function(e...

bravelyr的菜园子 2113

高数15种常见特殊曲线:星形线、心形线、摆线、对数螺线、双曲螺线、阿基米德螺线、伯努利双纽线、三叶玫瑰线、四叶玫瑰线、六叶玫瑰线、三次抛物线、半立方抛物线、箕舌线、蔓叶线、笛卡儿叶形线、概率曲线

4.1 对数螺线(等角螺线、生长螺线)三叶玫瑰线、四叶玫瑰线、六叶玫瑰线。​7.2 半立方抛物线(尼尔曲线)10.笛卡儿叶形线(茉莉花瓣曲线)常考选择题、填空题,大题也涉及。​4.2 双曲螺线(倒数螺线)11.阿基米德螺线(等速螺线)3.摆线(圆滚线、旋轮线)5.双纽线(伯努利双纽线)1.星形线(四尖瓣线)2.心形线(心脏线)..................

刘鑫磊 1万+

从零开始学JavaScript——JS拖拽三大事件

说到拖拽,我们要知道的三大事件 onmousedown(鼠标按下选择元素) onmousemove(按住鼠标移动元素) onmousedown(鼠标松开释放元素) 接下来我们来看一个小案例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">

m0_46186102的博客 1813

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JS 拖拽事件

这里写的是一个原生js实现拖拽的效果,首先: 1、实现拖拽的三大事件,是要首先清楚的 onmousedown (鼠标按下的时候)、onmousemove(鼠标移动的时候)、onmouseup(鼠标松开的时候) 2、给目标元素加上onmousedown时间,记录鼠标按下的时候,鼠标距离所在元素的位置(就是鼠标距离所在元素边界的距离left、top)记录为disX、disY。要注意的是,要移动的...

u013040887的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

js封装拖拽事件

function drag(elem){ var disX,disY; addEvent(elem,"mousedown",function(){ var event=e||window.event; disX=event.clientX-parseInt(elem.getStyle("left")); disY=event.clie...

qq_37635519的博客 578

从零开始实现的JS拖拽事件

拖拽事件是很常见的dom操作,但是实现起来却经常让人感到一头雾水,不熟悉dom事件和盒模型的新人可能更是感觉无从下手,那么接下来就从最基本的概念来学习如何实现一个拖拽操作。

weixin_42313342的博客 1348

【JavaScript】事件 - 实现元素拖拽至画布

React:使用state和onDrop等事件来处理拖拽和元素的放置。Vue:利用data和v-on指令来处理拖拽事件,同时使用v-for结合动态样式来更新放置元素的位置。两者的核心思路都是通过事件监听来处理拖拽操作,并将元素的位置存储在状态中,随后根据状态重新渲染页面。

小秀的博客 1974

js鼠标拖拽事件

只记录left,top同理。 clientX:返回鼠标相对于浏览器的水平坐标; offsetLeft:返回当前对象距离浏览器(父对象)的左侧距离; offsetWidth:对象的可见宽度; onmousemove:鼠标移动事件; 连接点是鼠标放在div上拖动时的位置(坐标)不会改变的,起名字为unchangX; 鼠标拖动事件是利用position:absolute绝对定位改变l

xiaoqingpang的博客 3207

JS拖拽事件

拖拽事件分为: - dataTransfer 对象:退拽对象用来传递的媒介,使用一般为Event.dataTransfer。- draggable 属性:就是标签元素要设置draggable=true,否则不会有效果,例如:列表1- ondragstart 事件:当拖拽元素开始被拖拽的时候触发的事件,此事件作用在被拖曳元素上- ondragmove事件:当拖拽元素在拖拽中触发的事件,此事件作

qq_32550037的博客 3945

js监听拖拽事件结束

js监听拖拽事件结束,mouseUp事件无效

qq_30351747的博客 2594

原生js拖拽事件

实现思路: 拖拽的基本原理就是根据鼠标的移动来移动被拖拽的元素。鼠标的移动也就是x、y坐标的变化;元素的移动就是style.position的 top和left的改变。这时需要三个事件。 1.onmousedown 鼠标按下事件; 2,onmousemove 鼠标移动事件; 3.onmouseup 鼠标抬起事件; 具体代码 <!DOCTYPE html> <html lang=...

document_write的博客 711

js事件中的拖拽

js事件的拖拽

szydqq的博客 1005

JS基础-事件的拖拽

1.事件的拖拽 拖拽的流程:1.当鼠标在被拖拽元素按下时,开始拖拽。(onmousedown);2.当鼠标移动时被拖拽的元素随鼠标移动。(onmousemove);3.当鼠标松开时被拖拽元素固定在当前位置.(onmouseup) &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;titl...

dweblover的博客 324
上一篇: php如何上传文件并且将文件传到另一个文件中
下一篇: css3之animation属性
枫叶在飘呀
博客等级 码龄7年 96粉丝 44原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值