首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

2.3K71

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

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

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

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

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.3K80

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

​ 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

1.7K21

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 用途:获取当前页面的名称。

2.2K10

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

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

1.8K10

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

3.9K100

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

2.9K20

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则以屏幕为基准)。

1.6K10

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

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

9.5K20

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 指代当前操作元素

6.5K30

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

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

47640

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

2K20

C#常用 API函数大全

API之位图、图标和光栅运算函数 BitBlt 将一幅位图从一个设备场景复制另一个 CopyIcon 制作指定图标或鼠标指针一个副本。...描绘一个图标或鼠标指针。...从指定模块或应用程序实例载入一个鼠标指针 LoadCursorFromFile 在一个指针文件或一个动画指针文件基础上创建一个指针 LoadIcon 从指定模块或应用程序实例载入一个图标...GetCursorPos 获取鼠标指针的当前位置 GetDateFormat 针对指定“当地”格式,对一个系统日期进行格式化 GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件间隔时间...SetCursor 将指定鼠标指针设为当前指针 SetCursorPos 设置指针位置 SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件间隔时间

2K41

Canvas 上实现坐标定位

本文,我们将来讲解如何在 canvas 上实现坐标的定位,如下效果图所示: 我们顺便还显示了一个拖拽功能,当然这个并不是使用 canvas 绘制,后面会讲到。...我们获取鼠标当前相对原点位置,那不就行了。...,用于获取该元素相对于视口位置和尺寸信息。...该方法返回一个 DOMRect 对象,其中包含以下属性: x: 元素左边界相对于视口左边界距离 y: 元素上边界相对于视口上边界距离 width: 元素宽度 height: 元素高度 top...: 元素上边界相对于视口上边界距离 right: 元素右边界相对于视口左边界距离 bottom: 元素下边界相对于视口上边界距离 left: 元素左边界相对于视口左边界距离 我们来讲个题外话

25130

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 来判断当前点击对象

7K10

学习算法必须要了解数据结构

简而言之,数据结构是一个以特定形式存储数据容器。这种“形式”允许数据结构在某些操作更加高效。 为什么我们需要数据结构?...链表就像一个节点链,每个节点包含数据和指向链后续节点指针等信息。有一个头指针,它指向链表第一个元素,如果列表是空,那么它只是指向null或什么都没有。链表用于实现文件系统,哈希表和邻接列表。...边可以包含权重/成本,显示从顶点xy遍历所需成本。 ?...以下是树木类型: N-ary树 平衡树 二叉树 二叉搜索树 AVL树 红黑树 2-3树 常见Tree面试问题 找到二叉树深度 在二叉搜索树查找第k个最大值 查找距离根“k”距离节点 在二叉树查找给定节点根节点...哈希数据结构性能取决于以下三个因素: 哈希函数 哈希表大小 碰撞处理方法 这是一个如何在数组映射哈希说明。该数组索引是通过哈希函数计算。 ?

2.1K20

Javascript(2)-js进阶

描述 offsetWidth 获取元素宽度;包含padding值\border值 offsetHeight 获取元素高度;包含padding值\border值 offsetTop 获取元素距离浏览器顶部距离...offsetLeft 获取元素距离浏览器左边距离 备注:如果父元素进行了relative/absolute定位,offsetTop/offsetLeft就是相对父元素顶部和左边距离,如果父元素默认定位...var _names=["iphone7 plus","iPad Pro","apple watch","iPad mini4","iphone6","apple"] //获取页面要使用标签对象...button 返回当事件被触发时,哪个鼠标按钮被点击。 clientX 返回当事件被触发时,鼠标指针水平坐标。 clientY 返回当事件被触发时,鼠标指针垂直坐标。...relatedTarget 返回与事件目标节点相关节点。 screenX 返回当某个事件被触发时,鼠标指针水平坐标。 screenY 返回当某个事件被触发时,鼠标指针垂直坐标。

1.4K30

ECCV2020 | 将投票机制引入自下而上目标检测,整合局部和全局信息

类似地,在HoughNet,属于某个类对象特定位置存在由在该位置上投射类条件投票总和确定(图1)。...目前最先进物体检测器依靠局部(或短距离visual evidence(自上而下方法)或重要关键点角点(自下而上方法)来决定该位置是否有物体。...HoughNet能够通过投票来整合短距离和长距离视觉证据。图1是一个例子,被检测到鼠标得到了两个键盘投票,其中一个键盘就在图像另一边。...在所有情况下,除了位置投票(在鼠标本身上)之外,还有来自附近“键盘”对象强大投票。考虑鼠标和键盘对象经常同时出现,这种投票方式是合理。...在第二行“棒球棒”、“棒球手套”和“网球拍”检测中观察类似的行为。这些对象从遥远“球”对象获得了强大vote。同样,在第三行,“花瓶”检测得到鲜花强烈支持。

68230
领券