DOM事件模型例子:可拖动的元素

群晖Git Server权限配置全攻略:如何让普通用户(非admin)也能安全提交代码? 本文详细解析了群晖Git Server权限配置方案,特别针对普通用户(非admin)安全提交代码的需求。通过SSH服务配置、精细化用户权限管理及仓库创建自动化脚本,实现在DS218+等群晖NAS设备上的高效代码协作,同时确保系统安全。 阅读详情

       通过对javascript权威指南第四版第十九章事件与事件处理的学习,基本了解了不同浏览器(IE5+, IE4, firefox, netscape)的事件模型的区别。本例子根据不同浏览器的不同事件模型实现方法,实现支持所有浏览器的脚本,并且可以看出不同事件模型的区别。

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
/**说明:自动判断浏览器是否支持,运行此程序。
 *该函数由mousedown事件处理程序中调用它时,它允许用户拖动文档元素。
 *beginDrag()的第一个参数必须是一个文档元素,该元素用CSS position性质绝对定位。在style性质中,CSS性质的left和top
 *必须被明确地设置为像素值,第二个参数是与触发mousedown事件相关的事件对象。
 **/
function beginDrag(elementToDrag, event) {
 
 var x = parseInt(elementToDrag.style.left);
    var y = parseInt(elementToDrag.style.top);

 //计算一个点和鼠标点击(event.clientX,event.clientY)的位置之间的距离
    var deltaX = event.clientX - x;
    var deltaY = event.clientY - y;
   
 if (document.addEventListener) //是否支持2级DOM事件模型
 {
  //document.write("该浏览器支持DOM L2事件模型");
  document.addEventListener("mousemove", moveHandler, true);
  document.addEventListener("mouseup", upHandler, true);
 }
 else if (document.attachEvent) //是否支持IE 5+事件模型
 {
  //document.write("该浏览器是IE5+, 不支持DOM L2事件模型");
  document.attachEvent("onmousemove",moveHandler);
  document.attachEvent("onmouseup",upHandler);
 }
 else  //IE 4事件模型
 { //在IE4我们不能使用attachEvent()方法,所以存储了以前赋予的处理程序后,
  //直接赋予新的事件处理程序.这样还可以恢复旧的处理程序.
  //注意:这同样依赖于事件气泡.
  //document.write("该浏览器是IE4");
  var oldmovehandler=document.onmousemove;
  var olduphandler=document.onmouseup;
  document.onmousemove=moveHandler;
  document.onmouseup=upHandler;
 }

 
 //我们已经处理了该事件,不要让别的元素看到它。
 //Event接口还定义了两个方法,即stopPropagation()和preventDefault()
   
 if (event.stopPropagation)
 {
  event.stopPropagation();//stopPropagation()可以阻止事件从当前正在处理它的节点传播。
 }else{
  event.cancelBubble=true;
 }

    if (event.preventDefault)
    {
  event.preventDefault();//preventDefault()阻止浏览器执行与事件相关的默认动作
 }else{
  event.returnValue=false;
 }
      //在2级DOM API中,可以调用preventDefault()方法,与在0级事件模型中返回false一样。(如自定义右键弹出窗口)

    /**
  *这是在元素被拖动时捕捉mousemove事件的处理程序。
     **/
    function moveHandler(e) {
  //把元素移到当前的鼠标位置,根据初始鼠标点击的偏移量进行调整。
  if (!e)
  {
   e=window.event;
  }
  elementToDrag.style.left = (e.clientX - deltaX) + "px";
  elementToDrag.style.top = (e.clientY - deltaY) + "px";

  // And don't let anyone else see this event.
  //不要让别的元素看到该事件。
  if (e.stopPropagation)
  {
   e.stopPropagation();  //DOM  L2
  }else{
   e.cancelBubble=true; //IE
  }
    }
    /**
  *该处理程序将捕捉拖移结束时发生的mouseup事件。
     **/
    function upHandler(e) {

  if (!e)
  {
   e=window.event;
  }
 
  //注销捕捉事件处理程序。
  if (document.removeEventListener)
  {
  document.removeEventListener("mouseup", upHandler, true);
  document.removeEventListener("mousemove", moveHandler, true);
  }
  else if (document.detachEvent)
  {
   document.detachEvent("onmouseup",upHandler);
   document.detachEvent("onmousemove",moveHandler);
  }else
  {
   document.onmouseup=olduphandler;
   document.onmousemove=oldmovehandler;
  }
  
  // 不要让该事件进一步传播。
  if (e.stopPropagation)
  {
   e.stopPropagation();
  }else
  {
   e.cancelBubble=true;
  }
 }
}

//-->
</SCRIPT>
</HEAD>

<BODY>
<!--定义要拖动的元素-->
<DIV style="position:absolute;left:100px;top:100px;border:solid black;">
<!-- 定义进行拖移的处理程序,注意onmousedown的性质 -->
<DIV style="border-bottom:dotted black;padding:3px;font-family:sans-setif;font-weight:bold;" onmousedown="beginDrag(this.parentNode,event);">
DRAG ME!!!HELLO!
</DIV>

</DIV>

<INPUT style="position:absolute;left:200px;top:200px;" TYPE="button" onmousedown="beginDrag(this,event);" value="可以移动的按钮">


</BODY>
</HTML>

Python控制TEMI1000/TEMI1500测试温箱 该温箱是我司从昆山振弘检测设备有限公司采购的TEMI 1000,但是控制器用的是韩国的,关于控温箱这个项目,可参考的资料仅有一份官方的manual,里面包含一些命令格式。只要你有温箱,就应该可以向厂家索取该文档。该温箱的通讯接口只有一个RS232接口,要想实现远程控制,需要有串口转USB的线;类似于下图所以,想依靠python来与之进行通信,还是要通过python 的pyserial库,关于怎么安装pyserial,过于简单,这里不做赘述,可自行百度。 阅读详情

相关推荐

centos7安装Ambari 2.7.5 + HDP3.1.5

准备 1.安装包准备: Ambari2.7.5、HDP31.5、libtirpc-devel: centos7操作系统: 链接:https://pan.baidu.com/s/1vzvio5rAMsbYF0-0vBs5dw 提取码:xij9

kxq的博客 5091

Js 实现dom元素拖动

原生Javascript实现元素随鼠标拖动而移动的效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </

卡卡西:一个擅长拷贝的前端程序员 1423

PPO(Proximal Policy Optimization)算法原理及实现,详解近端策略优化

接着上面的讲,PG方法一个很大的缺点就是参数更新慢,因为我们每更新一次参数都需要进行重新的采样,这其实是中on-policy的策略,即我们想要训练的agent和与环境进行交互的agent是同一个agent;与之对应的就是off-policy的策略,即想要训练的agent和与环境进行交互的agent不是同一个agent,简单来说,就是拿别人的经验来训练自己。举个下棋的例子,如果你是通过自己下棋来不断提升自己的棋艺,那么就是on-policy的,如果是通过看别人下棋来提升自己,那么就是off-policy的。

weixin_41106546的博客 9万+

JS DOM操作实现拖动效果

JS DOM操作实现拖动效果 实现思路 首先画个绝对定位的div 监听mousedown mouseup mousemove 定义一个变量来标记是否按下 在Move中判断如果按下,则将鼠标位置赋值给div 按下时记录鼠标与div的相对位置,移动时减去这段距离 在move时阻止默认行为,防止拖动文字有Bug 监听blur事件,防止窗口失去焦点导致bug DOM <style> #demo { width: 300px; hei

zyynb的博客 1275

TOPSIS+熵权法组合拳:5分钟学会供应商选择决策模型

本文详细介绍了如何运用TOPSIS和熵权法这对黄金组合,快速构建科学、客观的供应商评估决策模型。通过数据标准化、权重计算和综合排序,帮助企业在半小时内完成高效、准确的供应商选择,解决传统主观打分法的弊端,提升供应链管理效率。

weixin_29051149的博客 275

从手机到自动驾驶:MIPI-CSI2协议演进史与车规级改造要点

本文追溯了MIPI-CSI2协议从智能手机摄像头到自动驾驶核心传感器的演进历程。重点剖析了该协议在车规级改造中面临的严苛挑战,包括物理层稳定性、EMC防护、功能安全与数据可靠性等关键要点,并探讨了其在多传感器融合与高带宽实时传输中的工程实践。

weixin_28318011的博客 306

dom 元素拖拽实现

文章目录原生 JS 实现 div 拖拽HTML 拖拽 APIREF   之前找实习的时候,面试官出了道 “原生 JS 实现 div 元素拖拽”,当时实现了个大概,不过很多细节都没写好,刚好最近又看到了相关文章,因此这里再好好整理一下 JS 中的元素拖拽实现。 原生 JS 实现 div 拖拽 实现效果:演示地址   要实现这样的元素拖拽效果,一般思路是这样的: 首先要被拖拽的 div 元素需要是定位元素,因为我们要使用 left 和 top 样式来不断更新 div 的位置 设置一个 flag ,当鼠标左键在

yleave的博客 3102

别再瞎选了!手把手教你根据车型等级,在CarSim里快速匹配最合适的动力学模型

本文详细介绍了如何在CarSim中根据车型等级快速匹配最合适的动力学模型,提升仿真效率。通过分析CarSim模型库与A/B/C/D级车标准的对应关系,提供四步精准定位方法和不同车型的特殊处理技巧,帮助工程师避免常见错误,显著缩短模型准备时间。

weixin_27015733的博客 262

实现单个dom在页面随意拖拽

今天我做了实现单个dom在页面中随意拖拽效果,还可以直接给拖拽给扔出去。哈哈哈。我使用了draggable插件,所以还是比较简单的,但是很好玩哈哈哈 1.首先下载draggable插件 安装命令: npm i draggable 2.你可以在你想要的页面引入,也可以全局引入,我使用的是全局引入 mian.js中: import Draggable from 'draggable' 3.引入相关代码 这个是你要操作的dom元素 <div id="id">好好学习,天天向上</div&gt

星星月亮的博客 475

040、未来展望:MLIR与编译技术的演进方向

MLIR不是又一个编译框架,它更像是一套“元框架”——提供构建专用编译工具的能力。未来几年,我们会看到更多垂直领域(自动驾驶、射频信号处理、生物计算)出现基于MLIR的专用编译器,它们可能不会挂“MLIR”的名字,但内核都是这套可扩展的IR基础设施。不要等MLIR“成熟”再用,现在就该把它当成一把瑞士军刀,先挑刀口最锋利的那个功能(比如图优化、循环变换)用起来。编译技术的演进不再是学术界的独角戏,而是越来越贴近实际生产中的异构、动态、领域专用需求。

m0_50546716的博客 174

XYC Q8开源掌机刷第三方系统教程

分区结束后直接将各种游戏文件放入OD分区的Roms文件夹下

m0_60352504的博客 4566

原生js实现多个元素的拖拽效果

直接上教科书式代码+注释。

weixin_47932870的博客 1028

starrc: LEF DEF FLOW与full chip flat netlist

SIKP_CELLS默认为"SKIP_CELLS: *"意思是跳过所有ref cell内部的rc提取,仅提取cell之间的互联线的rc,"SKIP_CELLS: *!与MACRO_DEF_FILE搭配使用的还有SKIP_CELLS命令,如果想提取block的寄生参数生成full chip的flat netlist,或者跳过block取执行hier的寄生参数提取都需要用到SKIP_CELLS。此时,macroA和macroB没有被跳过,所以提取其内部的rc,spef中存在两个A和两个B。

m0_61544122的博客 551

史上最详细的DOM事件之拖动事件

史上最详细的DOM事件之拖动事件 上篇博客讲了DOM的剪贴板事件,这篇博客我们来讲一讲DOM的拖动(DragEvent)事件。 HTMl代码: <img src="../../CSS/0421/car.jpg" draggable="false"> JS代码: var oImg=document.getElementsByTagName("img")[0]; // DragEvent 拖动事件 // ondrag 该事件在元素正在拖动时触发 oI

qq_39155611的博客 1655

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

js 实现拖动dom元素并交换位置

效果图如下: <!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> body { display: flex; padding: 100px; ...

chen1042246612的博客 5620

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Web APIs】JavaScript touch 触摸事件 ④ ( 拖动元素案例 )

一、拖动元素案例 1、需求说明 2、实现原理 ① 关键事件 ② 实现步骤 ③ 默认行为阻止 3、代码示例 ① 代码示例 ② 执行结果

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2046

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HTML DOM 事件

1. HTML DOM 事件 参考文档:https://www.runoob.com/jsref/dom-obj-event.html HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序。 事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮)。 提示: 在 W3C 2 级 DOM 事件中规范了事件模型。...

akuibpt23191的博客 773

DOM的三种事件模型和牵扯到的事件e

引子(略长,看事件模型可以直接跳到后面): 事件: 什么是事件呢?直观的说就是网页上发生的事情,大部分是指用户的鼠标动作和键盘动作,如点击、移动鼠标、按下某个键。 为什么说大部分呢,因为事件不单单只有这两部分,还有其他的例如document的load和unloaded。只不过我们更加关注的是用户的操作。 事件被封装成一个event对象,包含了该事件发生时的所有相关信息(event的属性)以及可以对事件进行的操作(event的方法)。 e常用属性: 各个浏览器中鼠标位置的属性 offse.

robertzsun 601

JavaScript:事件 / DOM事件

JavaScript使我们有能力创建动态页面,网页中的每一个元素都可以产生某些触发JavaScript函数的事件。我们可以认为事件是可以被JavaScript侦测到的一种行为。当我们在某个元素上添加一个事件时,根据事件执行的前后可以把它当成一个事件流,例如在DOM事件中规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。首先发生的是事件捕获,然后是实际的目标接收到事件,最后是冒泡阶段,可以在这个阶段对事件做出响应。

snow的博客 888

javscript_DOM 拖动事件

拖拉事件 拖拉 drag ,是指用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里。 一旦某个元素节点的 draggable 属性设为true,就无法再用鼠标选中该节点内部的 文字或子节点了 拖拉的对象: 除了元素节点默认不可以拖拉,其他(图片、链接、选中的文字)都是可以直接拖拉的 为了让 元素节点...

dmulesbgm46972850的博客 120

js拖拽添加html dom,javascript实现dom元素可拖动

摘要:最近在项目中要做一个图片预览的功能,这时候会遇到用户上传很大的图片,已经超出视图界面。最终决定做一个在固定宽和高的位置,用户可以拖动图片查看。所以自己就写了一个支持ie5+,chrome,Firefox,opera等浏览器的可拖动dom元素的插件。实现这个功能所需要的知识点不多,如下:1、js中element.style.leftstyle.left返回的变量是个字符串,是个可改变量js中e...

weixin_29382705的博客 524

js 实现拖动元素到任意位置

一、实现效果 二、实现代码 主要通过原生的 mousedown 和 mouseup 以及mouseleave 事件实现 <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1, m

halo1416的博客 5543

dom元素在容器中拖动实现

dom html 元素拖动

wzq2011的博客 380

JS拖动事件(鼠标拖动事件)&手指事件(PC移动端拖拽)

写了好几次的PC端和移动端的拖拽效果了,每次都要重新查阅资料,现在做个总结记录,方便以后随时查阅 要想写拖拽事件,首先得了解三块知识点: PC的鼠标拖动事件 移动端的手指事件 能拿到被移动元素的高宽,距离可移动范围内的距离 拖动事件与手指事件 顾名思义,就是通过不同的触发条件来达到你想实现的拖动效果,至于第三条的可移动范围,可以是 父级dom 的宽高,也可以是 可见的视口宽高,具体根据自己的需求定制,下面会提供对应获取方法 以下提供文章目录 文章目录PC端的拖拽事件移动端的手指事件拿到被移动元素的高宽,

远来客的博客 1万+

鼠标拖动DOM

自己收藏,使用angualrjs的directive些的鼠标拖动DOM.... <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,...

VB2016的博客 170

HTML5下DOM元素在窗口中拖动(更改位置)

在非H5浏览器中,要想在窗口中靠鼠标移动DOM元素位置,需要在mousedown事件中记录鼠标和被拖动DOM的位置信息,在mousemove中呈现移动效果,然后在mouseup中改变最终位置。而在H5中省事了很多,利用dragable属性和drop事件很容易就做到

ganyuanmen的博客 1万+
上一篇: 超越reloadable=true, 在Tomcat运行时动态重载
下一篇: 如何保存上次下拉列表选择的值用于下次显示
danning
博客等级 码龄22年 5粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值