首页
学习
活动
专区
圈层
工具
发布

前端架构师之11_JavaScript事件

2 事件对象 2.1 获取事件对象 当发生事件时,都会产生一个事件对象event。 这个对象中包含着所有与事件相关的信息,包括发生事件的DOM元素、事件的类型以及其他与特定事件相关的信息。...比如,因鼠标移动发生事件时,事件对象中就会包括鼠标位置(横纵坐标)等相关的信息; 获取事件对象的方式 早期IE浏览器(IE6~8):window.event 标准浏览器:会将一个event对象直接传入到事件处理程序中...var event = e || window.event; 2.2 常用属性和方法 在事件发生后,事件对象event中不仅包含着与特定事件相关的信息,还会包含一些所有事件都有的属性和方法。...位置属性(只读) 描述 clientX 鼠标指针位于浏览器页面当前窗口可视区的水平坐标(X轴坐标) clientY 鼠标指针位于浏览器页面当前窗口可视区的垂直坐标(Y轴坐标) pageX 鼠标指针位于文档的水平坐标...(X轴坐标),IE6~8不兼容 pageY 鼠标指针位于文档的垂直坐标(Y轴坐标),IE6~8不兼容 screenX 鼠标指针位于屏幕的水平坐标(X轴坐标) screenY 鼠标指针位于屏幕的垂直坐标(

1.7K10

原生 JS 手写一个优雅的图片预览功能,带你吃透背后原理

在监听事件中我们可以通过 event 对象获取各种属性,例如常用的 offsetX、offsetY 相对偏移量,clientX、clientY 距离窗口的横坐标和纵坐标等。...指针 是输入设备的硬件层抽象(比如鼠标,触摸笔,或触摸屏上的一个触摸点),它能指向一个具体表面(如屏幕)上的一个(或一组)坐标,可以表示包括接触点的位置,引发事件的设备类型,接触表面受到的压力等。...PointerEvent 接口继承了所有 MouseEvent 中的属性,以保障原有为鼠标事件所开发的内容能更加有效的迁移到指针事件。...但在 指针事件 中却找不到类似的对象(MDN对其描述只是扩展了 MouseEvent 的接口),想来 Touch 对象只服务于 TouchEvent 这点其实也可以理解,所以要自己实现对触摸点数的记录。...其中我们利用 pointerId 标识触摸点,移动事件中根据事件对象的 pointerId 来更新对应触点(指针)的数据,当触点抬起时则从Map中删除点位:let touches = new Map()

4.6K81
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    让剁手党洞察物体细节,“放大镜”当之无愧

    2、涉及到的主要知识 offsetLeft: 获取当前对象与父元素的左距离 offsetTop: 获取当前对象与父元素的上距离 offsetWidth: 获取元素(含边框)的自身宽度 offsetHight...onmouseover: 当鼠标指针位于元素上方时,会发生mouseover事件 onmouseout: 当鼠标指针从元素上移开时,发生mouseout事件 onmousemove: 当鼠标指针在指定的元素中移动时...当鼠标移动到box上方时,move块将显示,同时在放大区中显示大图的对应位置,所以我们在这里需要使用mousemove事件监听,当我们鼠标移入box时,就需要获取当前鼠标的相对坐标位置。...newY = e.clientY; // 获取当前鼠标Y轴位置 } 3.通过获取到的鼠标坐标位置,减去box左/上距视口的距离,再减去move块所展现出来的宽高的1/2,则得到获取到当前的move块位置...5、小结: 因为在日常项目开发中,对拖拽功能的需求还是比较常见的,这几期从自定义滚动条到放大镜的效果都是基于拖拽原理上实现的,小匠在后面的分享中会继续为大家带来更加实用与有趣的功能效果,希望能够为大家在实际开发中带来一点帮助

    1.7K80

    【实例】调整区域大小&动态隐藏区域

    ​ CSS布局相关及Flex详解,提及到使用Flex来完成一侧固定大小,另一随浏览器大小自动缩放。今天开发中,有这样一个需求,在两块内容中间增加一条线,然后拖拽线,可以自动调整两侧区域。...( 如鼠标 )交互时发生的事件。...MouseEvent属性 说明 实例值 clientX、clientY 设置或获取鼠标指针位置相对于窗口客户区域的 X、Y 坐标(不包括滚动条) 106+3+300-5+2=406 offsetX、offsetY...设置或获取鼠标指针位置相对于触发事件的对象的X、Y坐标 2 pageX、pageY (只读)相对于整个文档的X、Y坐标以像素为单位的只读属性(包括滚动条) 74+106+3+300-5+2=480 screenX...、screenY 设置或获取获取鼠标指针位置相对于用户屏幕的X、Y坐标 1440+clientX=1846 x、y clientX、clientY的别名 与clientX相等 Element Element

    2.2K21

    在 PDF 文档中测量长度、周长和面积

    在建筑、工程和施工(AEC)行业,对 PDF 测量工具的需求变得至关重要。现在,让我们深入了解测量工具,学习如何在 PDF 上进行测量。...用于测量距离的直线直线是在平面图、三维图和剖面图中测量长度的基本工具。它满足了在这些图纸中测量两点之间距离的基本需求。用户只需单击初始点,将指针移至第二点,然后松开指针即可显示测量结果。...在端点处双击鼠标,即可立即显示周长和每条线的单个测量值。多边形和矩形用于测量周长和面积多边形和矩形,用于精确测量面积和周长。多边形适用于不规则形状,而矩形适用于规则矩形。...更多参数和功能这些测量工具提供广泛的自定义选项,允许用户设置各种参数,如自定义线条、调整精度、校准长度、抓取、放大等。...自定义线条:个性化线条的颜色、不透明度、线条和边框样式、粗细、填充颜色、字体颜色等,以满足您的视觉偏好或特定要求。调整精度:调整测量精度,从整数到小数点后四位。

    1.5K10

    Axure函数大全

    鼠标指针函数 Cursor.x 用途:鼠标指针在页面中位置的X轴坐标。 Cursor.y 用途:鼠标指针在页面中位置的Y轴坐标。...DragX 用途:鼠标指针沿X轴拖动元件时的瞬间(0.01秒)拖动距离。 DragY 用途:鼠标指针沿Y轴拖动元件时的瞬间(0.01秒)拖动距离。...TotalDragX 用途:鼠标指针拖动元件从开始到结束的X轴移动距离。 TotalDragY 用途:鼠标指针拖动元件从开始到结束的Y轴移动距离。...DragTime 用途:鼠标指针拖动元件从开始到结束的总时长。 Axure RP窗口函数 Window.width 用途:打开原型页面的浏览器当前宽度。...Window.scrollX 用途:浏览器中页面水平滚动的距离。 Window.scrollY 用途::浏览器中页面垂直滚动的距离。 页面函数 PageName 用途:获取当前页面的名称。

    3K10

    # 如何使用 ArcGIS Engine10.2 + C# VS2012 开发环境,实现鹰眼功能。

    表示如果按下鼠标左键,并且指针落在鹰眼地图的矩形框中,就标记为可移动,并记录点击的点的坐标,用于后续的拖动操作。...如果鼠标移动到矩形框中,并且没有按下右键,就将鼠标指针换成小手,表示可以拖动矩形框。如果鼠标移动到矩形框中,并且按下了右键,就将鼠标指针换成默认样式,表示不能拖动矩形框。...如果鼠标移动到矩形框外,就将鼠标指针换成默认样式。如果之前已经标记为可移动,并且按下了左键,就计算鼠标移动的距离,并根据偏移量改变矩形框的位置,同时也改变主地图的视图范围。...CopyToPageLayout 方法用于将主地图的地图对象复制到页面布局控件中的地图对象,实现两个地图对象的同步。它使用了一个 IObjectCopy 接口,用于复制和覆盖对象。...处理了主地图上的事件,如OnMapReplaced、OnExtentUpdated、OnAfterScreenDraw等,用于同步鹰眼地图和页面布局控件中的地图对象。

    3K10

    HTML5魔法堂:全面理解Drag & Drop API

    effectAllowed 和 dropEffect 最主要的作用是,用于配置拖拽操作过程中鼠标指针的类型以便提示用户后续可执行怎样的操作;其次的作用是,控制 drop 事件的触发与否。      ...取值范围: copy :被拖拽元素将被复制到目标元素内,若属于 effectAllowed 范围内时,则鼠标指针显示复制的样式,否则则显示禁止的指针样式。...仅能在dragenter,dragover和drop中获取该属性  2.3. 方法 void addElement({HTMLElement} element) :添加一起跟随鼠标移动的元素。...,用来替代默认的元素,若image不是图片元素则会元素临时转换为图片;x用于设置图标与鼠标在水平方向上的距离,y设置图标与鼠标在垂直方向上的距离。...对象中获取指定格式的数据 void clearData([{DOMString} format]) :从DataTransfer对象或ClipboardData对象中删除指定格式或全部kind值为string

    4.5K100

    【HarmonyOS NEXT星河版开发学习】小型测试案例12-点赞案例

    前言 本案例主要运用了交互点击事件和基础的算术运算符的应用,难度并不大,卡片的制作相对来说并不是太难,简单的整体到局部。...知识点概述 在鸿蒙开发中,交互点击事件是构建用户界面交互性的重要组成部分。这些事件允许应用对用户的输入做出响应,比如点击、长按或拖动手势等。...键鼠事件 鼠标事件:在支持鼠标或触控板的设备上,鼠标的点击、滚轮滚动、双击等动作都会触发相应的鼠标事件。这些事件可以用于实现更为复杂的指针交互逻辑,如右键菜单或拖拽操作。...焦点事件 获取和失去焦点:当用户通过鼠标点击、键盘Tab键或触摸屏操作改变界面活动元素时,会触发焦点事件。这对于提升那些使用键盘导航的用户的用户体验至关重要。...手势事件 单一与组合手势:鸿蒙系统支持单一手势(如单击、轻触)和由多个单一手势组成的复杂手势(如缩放、旋转)。开发者可以为组件绑定特定的手势识别及响应方法。

    16710

    web前端必备英语词汇都在这儿了,客官你了解多少?

    contact 联系 child 孩子 content 内容 circle 圆圈 crosshair 十字叉丝 class 类别 css 层叠样式表 clear 清除 cursor 鼠标指针 cm...hover 鼠标指针经过时的效果,或称为“悬停状态” I: input 当输入的时候实时触发 innerHeight 内部高度 innerWidth 内部宽度 in 从0开始加速的缓动 inOut 前半段从...0开始加速,后半段减速到0的缓动 infinity 无线循环 insertBefore 插入到某元素前 image 图像 inline 行内 important 重要的 inner 内部的 indent...outerHeight 整个高度 outerWIdth 整个宽度 open 打开新页面 onscroll 窗口滚动事件 onresize 窗口大小监听事件 onload 图片加载事件 offsetLeft 获取元素距离左侧的距离...offsetTop 获取元素距离顶部的距离 offsetWidth 获取元素自身宽度 offsetHeigh 获取元素自身高度 onload 在装载时 onclick 在点击时 ondblclick

    3.7K20

    HTML5移动端开发的常用触摸事件

    因为iOs设备既没有鼠标也没有键盘,所以在为移动Safari浏览器开发交互性网页的时候,PC端的鼠标和键盘事件是不够用的。   ...所以,每个触摸事件的event对象都提供了在鼠标实践中常见的属性:bubbles(起泡事件的类型)、cancelable(是否用 preventDefault() 方法可以取消与事件关联的默认动作)、clientX...(返回当事件被触发时,鼠标指针的水平坐标)、clientY(返回当事件触发时,鼠标指针的垂直坐标)、screenX(当某个事件被触发时,鼠标指针的水平坐标)和screenY(返回当某个事件被触发时,鼠标指针的垂直坐标...targetTouches:特定于事件目标的Touch对象的数组。   changeTouches:表示自上次触摸以来发生了什么改变的Touch对象的数组。 每个Touch对象包含的属性如下。   ...pageX/pageX/clientX/clientY/screenX/screenY:一个数值,动作在屏幕上发生的位置(page包含滚动距离,client不包含滚动距离,screen则以屏幕为基准)。

    2.3K10

    C#学习笔记—— 常用控件说明及其属性、事件

    如果返回负值,则未找到所搜索的文本字符串。还可以使用此方法搜索特定格式的文本。的 参数RichTextBoxFinds指定如何在控件中执行文本搜索,其取值及其含义如表9-4 所示。...[格式3]: RichTextBox对象名.LoadFile(文件名,文件类型); [功能]:将特定类型的文件加载到RichTextBox控件中。 的 注意:文件类型和数据流格式见表9-5。...(1)MouseEnter事件:在鼠标指针进入控件时发生。 (2)MouseMove事件:在鼠标指针移到控件上时发生。...(3)MouseHover事件:当鼠标指针悬停在控件上时将发生该事件。 (4)MouseDown事件:当鼠标指针位于控件上并按下鼠标键时将发生该事件。...该事件的事件处理程序接收一个MouseEventArgs类型的参数 (6)MouseUp 事件:当鼠标指针在控件上并释放鼠标键时将发生该事件。

    14.6K20

    (十五):Event事件对象;移动爱心案例;Bubble事件冒泡;基于冒泡的事件委派处理

    button 返回当事件被触发时,哪个鼠标按钮被点击。 clientX 返回当事件被触发时,鼠标指针的水平坐标。 clientY 返回当事件被触发时,鼠标指针的垂直坐标。...relatedTarget 返回与事件的目标节点相关的节点。 screenX 返回当某个事件被触发时,鼠标指针的水平坐标。 screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。...比如:鼠标的坐标 键盘那个按键被按下,鼠标滚轮滚动的方向 在IE8中,响应函数被触发时,浏览器不会传递事件对象, 在IE8及以下的浏览器中,是将事件对象作为window对象的属性保存的 window.onload..." Y="+Y; } } 其他鼠标事件中事件对象都与onmousemove事件一致,只是事件与事件触发的条件不同,事件对象还是不会变的 案例 - 移动爱心 <!.../* 获取滚动条滚动的距离 Chrome认为浏览器的滚动条是body的,可以通过body.scrollTop来获取 火狐等浏览器认为浏览器的滚动条是HTML的

    21310

    JS快速入门(二)

    ,其子对象也有其 特有的属性和方法 使用 window 子对象时,可以使用完整语法,也可以忽略 window,如:window.alert() 与 alert()效果相同 window对象...features 设置新打开窗口的功能样式(如:width=500) replace true – 替换浏览历史中的当前条目 false – 在浏览历史中创建新条目 //新窗口打开Hammer博客...节点 说明 文档节点(document对象) 代表整个文档节点 元素节点(element对象) 代表一个元素(标签) 文本节点(text对象) 代表元素(标签)中的文本 属性节点(attribute对象...可设置元素中的 html 内容 innerText 返回元素中的文本内容,通过赋值,可设置元素中的文本内容 document.write() 将 html 字符串写入到文档中 节点写入示例 innerHTML...指针移出元素范围外触发一次 mouseover 指针移至元素或其子元素内,可能触发多次 mouseout 指针移出元素,或者移至其子元素内,可能触发多次 ps:事件处理程序中的 this 指代当前操作元素

    7.6K30

    Scratch3.0——助力新进程序员理解程序(六、监测)

    助力新进程序员理解程序(六、监测) ---- 目录 Scratch3.0——助力新进程序员理解程序(六、监测) 前言 环境 下载地址 安装说明 1、菜单栏 2、功能栏 3、代码区 4、舞台区 5、角色列表区 监测 碰到【鼠标指针...】与【舞台边缘】 碰到【某】颜色 当【某】颜色遇到【某】颜色 到鼠标的距离 询问与回答 按下【某】键 鼠标与坐标监听 响度与计时器 舞台编号 当前事件 时间拼接  总结 ---- 前言         ...另一类是基于Python、C++等高级编程语言的计算机编程教学,目标往往是参加信息学奥赛等科技品牌赛事,如信息学奥林匹克竞赛/联赛、机器人竞赛、科技创新大赛等,或为后续的专业学习和职业技能打下基础。...---- 监测 监测的内容还是很多的, 碰到【鼠标指针】与【舞台边缘】 碰到【鼠标指针】效果 碰到【舞台边缘】效果 碰到【某】颜色 遇到了粉色就直接停止了,并执行了说的效果。...当【某】颜色遇到【某】颜色 这里是两种颜色相遇 到鼠标的距离 获取鼠标距离人物的距离 询问与回答 会把问题存储到回答中,我们在回答中就能拿到对应的字符串。

    1K40

    C1能力认证训练题解析 _ 第四部分 _ Web进阶「建议收藏」

    常用的节点属性获取方式: 名称 描述 getAttribute() 返回元素一个指定的属性值 直接使用属性名称获取 适用于部分属性(如:title,value,href) (1)获取id名为container...(2)获取ul中的第2个li元素,请补全横线处数字。...() 将html字符串写入到文档中 (1)在div中插入文字内容为“加油,我要通过C认证”的p元素,请补全横线处代码。...,将html字符串解析为html元素并写入到html文档中。...指针移出元素范围外触发一次 mouseover 指针移至元素或其子元素内,可能触发多次 mouseout 指针移出元素,或者移至其子元素内,可能触发多次 PS:事件处理程序中的this

    2.8K20

    Fabric.js 右键菜单

    ,菜单在鼠标左侧,菜单在鼠标上方,菜单在鼠标下方); 左键单击画布其他地方,隐藏菜单; 实现思路: 创建画布; 创建 “菜单” 的DOM元素; 去官网查找 “右键相关事件”; 右键单击在元素上,根据鼠标离画布边缘的距离...在 对象相关的文档 里,关于鼠标的事件好像没有右键,稍微沾边点的就是鼠标点击(这里我选了 mousedown)。...}) // 三角形 let triangle = new fabric.Triangle({ width: 80, // 底边宽度 height: 100, // 底边到定点的距离...pointX = opt.pointer.x let pointY = opt.pointer.y // 计算菜单出现的位置 // 如果鼠标靠近画布右侧,菜单就出现在鼠标指针左侧...通过 opt.target 是否为 null 来判断当前点击的对象。

    9.1K10

    【愚公系列】2023年08月 Three.js专题-事件

    浏览器事件是在Three.js场景中发生的常见事件,如鼠标点击、鼠标移动、键盘按下等。可以通过在Three.js场景中添加监听器(如鼠标监听器、键盘监听器)来捕捉这些事件。...Three.js自定义事件是在Three.js自己的框架中定义的事件,如场景渲染事件、对象加载事件等。可以通过添加相应的监听器来捕捉这些事件。...下面是一个简单的代码示例,演示如何在Three.js中监听鼠标点击事件: renderer.domElement.addEventListener('mousedown', function(event...基于包围盒检测:使用特定的包围盒算法(例如AABB算法),创建一个包围物体的盒子,通过检测鼠标是否在盒子内部来判断是否选中该物体。...在点击事件中,我们使用射线(raycaster)检测光标是否射中了场景中的任何物体。如果存在相交对象(intersects.length > 0),我们就可以触发选中事件,如改变物体颜色、旋转等等。

    50010
    领券