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

JS实现获取鼠标在画布中的位置

JS实现获取鼠标在画布中的位置 效果展示 概述 本文讲解如何实现我们平时用的画布软件中,怎么获取的我们鼠标时刻在画布中的位置。...// 首先得到鼠标在页面中的坐标( e.pageX, e.pageY) // 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop) /.../ 用鼠标距离页面的坐标减去盒子在页面中的距离, 得到 鼠标在盒子内的坐标 // 我们生活中常见的画布里面的那个获取鼠标的位置 就是这么实现的 var box = document.querySelector...// 首先得到鼠标在页面中的坐标( e.pageX, e.pageY) // 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop) /.../ 用鼠标距离页面的坐标减去盒子在页面中的距离, 得到 鼠标在盒子内的坐标 // 我们生活中常见的画布里面的那个获取鼠标的位置 就是这么实现的 var box = document.querySelector

4K00

JavaScript 获取鼠标及元素在页面上的位置

HTML5学堂:JavaScript获取鼠标的位置,大家会想到clientX/Y等属性,灵活的获取鼠标的位置信息,能够便于我们实现各种复杂的页面交互效果,到底还有哪些属性可以获取鼠标的位置信息?...另外,还有哪些能快速获取标签在页面中的位置信息? 在书写一些“拖拽”页面交互效果,比如常见的拖拽效果、自定滚动条、放大镜等效果,都需要用到了鼠标或元素在页面上的位置信息。...另外,也要跟大家分享一个方法,它能快速的获取元素在页面上的位置信息,不同于之前学过的offsetLeft等属性,它就是——getBoundingClientRect()方法 回顾clientX/Y获取鼠标位置的方式...咱们都知道浏览器的可视区域位置是固定的不发生滚动的,所以,clientX/Y属性获取的鼠标位置不会随页面滚动而改变; 兼容性:所有浏览器都能支持。...今天要给大家分享的是另外一种快速获取元素在页面上的位置,赶紧尝试书写一下下面的实例 代码实例: <!

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

    vue返回上一页面时回到原先滚动的位置

    项目结束,测试时发现在首页商品列表中,向上滑动几页后点击进入详情,从详情页面返回商品列表时,页面回到了最顶部,测试不通过说是用户体验不好,要求从哪里点击进去返回该页面时回到原先的滚动页面。...思路:因为vue是单页面应用,进入其他页面时会销毁该页面,用keep-alive不让其刷新,具体实现为: (1).在App.vue中加入: ...中,mounted方发只走一次,在浏览器上实现了返回原来滚动位置的目的。...但是在手机上测试,发现没用, 解决手机上实现目的的方法: //在页面离开时记录滚动位置 beforeRouteLeave (to, from, next) { this.scrollTop =...document.documentElement.scrollTop || document.body.scrollTop next() }, //进入该页面时,用之前保存的滚动位置赋值 beforeRouteEnter

    3.7K20

    iOS中Mint Picker滑动时页面跟着滚动的解决方法

    项目在使用饿了么前端团队的 Mint UI 库的 Picker 和 Datetime picker 组件,iOS系统访问时会出现滑动穿透的现象。...主要表现在用手指在弹出层触摸滑动时,页面也跟着滚动,严重影响体验。...解决方法: 1、由于 Picker 组件的滚动是用 touch 事件 + translate 实现的,所以我们可以在 Picker 弹层出现的时候禁止页面的默认滚动机制,Picker 弹层消失时解除禁用页面的默认滚动机制... {     /*---------监听函数--------------*/     handler:function(e){e.preventDefault();}   } }, // 通过监听蒙层的显隐字段来控制页面滚动的禁用事件...问题产生的原因是一样的,同样可以用这个思路解决。 参考文档: ios中picker滑动穿透bug

    1.7K20

    getBoundingClientRect方法获取元素在页面中的相对位置

    获取元素位置可以用 offset 或 getBoundingClientRect,使用 offset 因为兼容性不好,比较麻烦,offset获取位置会形成“回溯”。...2.在IE8及以下的浏览器中,返回值对象包含的属性值有: top::元素上边缘距离文档顶部的距离; right: 元素右边缘距离文档左边的距离; bottom:元素下边缘距离文档顶部的距离; left:...元素左边缘距离文档左边的距离; 3.在IE9以上、谷歌、火狐等浏览器中,返回值对象包含的属性值有: top: 元素上边缘距离文档顶部的距离; right:元素右边缘距离文档左边的距离; bottom:元素下边缘距离文档顶部的距离...; left:元素左边缘距离文档左边的距离; width:元素的宽度(包含 padding 和 border) height:元素的高度(包含 padding 和 border) 4.在IE8及以下浏览器没有...width 和 height 属性的解决方法: 在IE8及以下浏览器中,可以通过计算得到元素的宽和高: 如: var dom = document.querySelector("#demo"), r

    6.5K20

    【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

    一、鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 ---- 鼠标指针指向界面中的 Canvas 画布某个位置 , Canvas 画布中绘制着一张超大图片 , 以该位置为中心 , 滑动鼠标滚轮时进行缩放...; 使用鼠标滚轮缩放后 , 在 Canvas 中绘制的图片的尺寸肯定是放大或者缩小了 , 尺寸发生了改变 ; 图片缩放时 , 鼠标指针指向一个位置 , 该位置对应着一个当前 Canvas 画布中的 x..., 并设置图片位置 ; 这样图片缩放时 , 始终可以保证鼠标指向的部位保持位置不变 ; 1、保存当前鼠标指针指向的位置 首先 , 在类中定义如下成员字段 , pointer_x 和 pointer_y...记录的是鼠标指针指向的界面中 Camvas 画布中的坐标位置 ; pointer_ratio_x 和 pointer_ratio_y 记录的是 鼠标指针指向位置对应图片中坐标位置的比例 ; public..., 保存当前的鼠标位置及比例 ; 在鼠标滚轮事件 MouseWheelEvent 中 , 可以直接通过调用 e.getX(), e.getY() 获取到当前 鼠标指针 在 Canvas 画布的坐标 ;

    6.1K10

    Fabric.js 缩放画布 🍬

    使用 canvas 开发的项目,滚轮缩放画布的需求应该不算少数,比如地图。 Fabric.js 也提供了缩放画布的功能,本文主要讲解设置画布大小的几种方法。 动手实现 在动手前先查查文档。...起步 在使用缩放功能之前,先初始化一下画布。 我还会在画布上设置一个背景图,便于观察。...getZoom 可以获取画布当前缩放级别,用 setZoom 设置一个新的缩放级别。 所以我在页面上再加2个按钮,一个放大,一个缩小。...// 限制最大缩放级别 if (zoom < 0.01) zoom = 0.01 // 限制最小缩放级别 // 以鼠标所在位置为原点缩放 this.canvas.zoomToPoint...) }) 复制代码 使用 mouse:wheel 监听鼠标滚轮滚动,如果向上滚动,deltaY 的值是100,向下就是 -100,所以可以自己设置一条公式来控制滚动时的缩放级别

    7K30

    【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener )

    1.0 设置鼠标滚轮监听 , 在 Canvas 组件中 , 调用 addMouseWheelListener 函数 , 添加 鼠标滚轮监听器 MouseWheelListener , 实现该监听器中的...void mouseWheelMoved(MouseWheelEvent e) 函数 , 当鼠标滚轮滑动时 , 通过 MouseWheelEvent 对象 , 获取鼠标滚轮的滑动方向 , 向上滑动时..., 放大画布 , 画布增加 10% ; 向下滑动时 , 缩小画布 , 画布缩小 10% ; 一旦 scale 缩放比例发生改变 , 立刻 调用 repaint() 函数 重新绘制 Canvas 画布 ,...// 绘制图形 } } 二、绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放示例 ---- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图...: 拖动缩小后的画布到中央位置 :

    3.7K30

    Fabric.js 拖放元素进画布

    能在画布中生成对应的元素。 画布有可能缩放。 画布有可能移动。 画布的位置可能在页面的某处。 在3和4情况下还能在准确的位置生成元素。 基于以上几点,我得出以下解法。...解4:移动画布我在 《Fabric.js 拖拽平移画布》 里讲解过。 解5:画布的左上角不一定在body的左上角,也就是鼠标当前位置可能和画布对应的坐标不一样,需要通过加减法计算一下。...按住 alt 后,使用鼠标在画布上可以拖拽画布。 在画布上滚动鼠标滚轮可以缩放画布。 左侧的元素列表也将 draggable 属性设置为 true,元素具备拖拽功能了。...,现在还需要知道生成到画布的哪个地方(x和y坐标) 松开鼠标时,需要计算鼠标在画布的坐标。...这里的坐标是指画布在页面中的位置转换出来的坐标,而且还要计算画布拖拽和缩放过的情况。

    4.2K30

    这些技巧让可视化制作效率提升3倍

    再次全选对象,点击“对象组合”,即可将多个对象合并为一个整体,拖动时对象就会整体移动。但对象在组合状态下无法编辑修改,需要选中对象,点击“组合解体”,即可拆分对象,进行编辑或单个移动。...05 图表收藏 图表无法跨数据报告复制粘贴,只需选中需要的图表,点击左侧收藏-->收藏对象,即可收藏该图表,并使用到任意数据报告中。...07 画布拓展和缩回 无须翻到底部,点击▲▼箭头实现画布拓展及缩回,也无需挪动其他目标腾位置,只需要将鼠标挪动至所需位置的画布右侧,但鼠标箭头变成↕️时,鼠标右键向下拖动即可拓展画布,向上拖动即可缩回画布...08 锁定和固定 当多个对象叠加,比如有底图时,鼠标拓展画布可能导致部分对象移位,此时选中对象,点击“锁定”按钮,即可锁定对象,拓展画布时也不会移位,可解锁后再进行调整。...而固定与锁定的区别是,固定后,永远存在于画布的固定位置,不会随画布滚动而移动,可用于固定置顶按钮。

    1.1K30

    Threejs入门之二十二:Threejs中的屏幕坐标转标准设备坐标

    在上一节中,我们在监听鼠标移动事件时,将其坐标范围处理为了[-1,1]的范围,使用如下代码document.addEventListener('mousemove',function( event )...标准坐标系我们之所以要进行上面的转换,这是因为在Three.js中Canvas画布具有一个标准设备坐标系,该坐标系的坐标原点在canvas画布的中间位置,x轴水平向右,y轴竖直向上。...标准设备坐标系的坐标值不是绝对值,是相对值,其范围是[-1,1]区间,也就是说canvas画布上任何一个位置的坐标,如果用标准设备坐标系来表示,那么坐标的值都是在-1到1之间的。...pageX:鼠标点击位置相对于网页左上角的水平偏移量,也就是 clientX + 水平滚动条滚动的距离。...clientX:鼠标点击位置相对于浏览器可视区域的水平偏移量(不会计算水平滚动的距离)。 clientY:鼠标点击位置相对于浏览器可视区域的垂直偏移量(不会计算垂直滚动的距离)。

    3.3K10

    JavaScript--DOM总结

    /环形的渐变(用在画布内容上) addColorStop() 规定渐变对象中的颜色和停止位置 线条样式 属性 描述 lineCap 设置或返回线条的结束端点样式 lineJoin 设置或返回两条线相交时...,或重置当前路径 moveTo() 把路径移动到画布中的指定点,不创建线条 closePath() 创建从当前点回到起始点的路径 lineTo() 添加一个新点,然后在画布中创建从该点到最后指定点的线条...onunload 用户退出页面。 鼠标 / 键盘属性 属性 描述 altKey 返回当事件被触发时,"ALT" 是否被按下。 button 返回当事件被触发时,哪个鼠标按钮被点击。...设置背景图像是否固定或随页面滚动 backgroundColor 设置元素的背景颜色 backgroundImage 设置元素的背景图像 backgroundPosition 设置背景图像的起始位置...TableRow 对象方法 方法 描述 deleteCell() 删除行中的指定的单元格。 insertCell() 在一行中的指定位置插入一个空的 元素。

    3K10

    我做了一个在线白板!!!

    当我们鼠标在画布世界按下时就决定了矩形出生的地方,所以我们需要记录一下这个位置: let mousedownX = 0; let mousedownY = 0; let isMousedown = false...其实我们鼠标是在另一个世界,这个世界的坐标原点在左上角,而前面我们把画布世界的原点移动到中心位置了,所以它们虽然是平行世界,但是奈何坐标系不一样,所以需要把我们鼠标的位置转换成画布的位置: const...移动矩形 移动矩形很简单,修改它的x、y即可,首先计算鼠标当前位置和鼠标按下时的位置之差,然后把这个差值加到鼠标按下时那一瞬间的矩形的x、y上作为矩形新的坐标,那么这之前又得来修改一下咱们的矩形模子:...,在调用save的时候传入鼠标当前的位置和按住了激活态的哪个区域。...我们新增两个状态变量:scrollX、scrollY,记录画布水平和垂直方向的滚动偏移量,以垂直方向的偏移量来介绍,当鼠标滚动时,增加或减少scrollY,但是这个滚动值我们不直接应用到画布上,而是在绘制矩形的时候加上去

    4.4K31

    【Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布中绘制的背景图像 ( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

    } }); 二、键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ---- 在 【Java AWT 图形界面编程...; 在 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener ) 博客中 , 新增鼠标滚轮缩放画布示例 , 但是使用鼠标拖动时..., 拖动的效果也随之缩放, 如 缩小画布后 , 移动鼠标 , 移动距离对应的缩放效果也随之缩小 ; 在 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布中绘制的背景图像 (...鼠标滚轮事件监听器 MouseWheelListener | Canvas 中绘制图像并设置图像大小 ) 博客中 , 使用缩放背景图像的方式 , 实现缩放效果 , 并同时福袋鼠标指针拖拽效果 ; 本博客中实现的案例...H 标识放置在界面中心 ; 将鼠标指针放在 H 位置 , 点击一次 , 按下数字键 9 , 放大 9 倍的效果如下 :

    4.3K20

    Fabric.js 居中元素 🎗️

    在使用 Fabric.js 开发时,可能会需要将元素居中。...阅读本文需要你有一定的 Fabric.js 基础,如果还不太了解 Fabric.js 是什么,可以阅读 《Fabric.js 从入门到膨胀》 创建基础项目 为了方便演示,我在初始化画布的时: 添加一个背景图...添加一个矩形,之后要居中的对象就是它了。 添加鼠标滚轮滚动时缩放画布(方便演示 基于视窗 和 基于画布 的区别)。 添加鼠标拖拽画布平移位置(方便演示 基于视窗 和 基于画布 的区别)。...false }) 复制代码 代码有点多,但 滚轮滚动时可修改画布缩放等级 和 拖拽画布 部分其实可以不要的,写上这些代码主要是为了方便演示。...,方法1是用画布操作指定的对象;方法2是元素自己根据视窗来调整自己的位置。

    4.7K20

    Axure高保真教程:鼠标滚动上下翻页效果

    一、效果展示 鼠标向上滚动时,切换查看上一张图片; 鼠标向下滚动时,切换查看下一张图片; 循环效果,如果在最后一张图片继续向下滚动,就会循环至第一张图片;如果在第一张图片继续向上滚动,就会循环值最后一张图片...这要就即可以有滚动效果,但是又不出现滚动条。 2. 设置交互 1)向下滚动的交互 鼠标向下滚动时,按理来说,我们只需用设置面板状态的交互,就能将图片设置到下一个页面。...这里我们要在动态面板内矩形上增加一个锚点,可以用透明的矩形去中,把锚点放在矩形中间的位置就是高10000点的位置,然后让滚动条默认滚动到中间锚点的位置,这样向上向下滚动都没有问题了。...3)动态面板载入时 前面讲到我们设置了中部锚点,要让滚动条默认滚动到中间锚点的位置。所以在载入时,我们要用滚动到锚点的交互,让滚动条滚动到中部的位置。...这样我们就制作完成了鼠标滚动上下翻页效果的原型模板了,下次使用时,只需要在动态面板里修改页面信息,替换图片,如果需要增加文字或者其他内容的话,也可以在动态面板对应状态里添加,添加完成后预览时就会自动生成效果了

    3.1K10

    50个Axure画原型技巧,产品经理速学速用

    如果想在「画布」中展示出网格,可以使用快捷键「Ctrl+’」或者在画布的空白区域,鼠标右键,勾上「显示网格」,将会把网格显示出来。不过展示出网格并不好看,可以不展示网格,只要能自动网格对齐就行了。...在画布空白区域「鼠标右键」,设置标尺。然后把「显示标尺」「显示全局辅助线」、「显示页面辅助线」都勾上,就可以从画布左边、上边,拖出辅助线,帮助我们快速对齐。...21、旋转元件按住 Ctrl,将鼠标放在元件的边缘,鼠标变成旋转样式,即可旋转。也可以在「样式」中调整旋转角度。...40、滚动查看将元件转换成动态面板,然后选中动态面板,「鼠标右键→滚动条→选择滚动方式」即可。也可以在样式面板中,直接选中滚动方式即可。...41、位置固定到浏览器比如:将弹窗在屏幕中间显示、导航固定在顶部。都可以通过固定到浏览器实现。首先将固定的内容转换成动态面板,然后在「样式」中选择固定到浏览器,选择对应的位置即可。

    3.2K21

    Vcl控件详解_c++控件

    Loaded:当窗体包含的页面组件首次从内存中调入后,自动调用该方法来初始化页面组件 SelectNextPage:指定当前页的前一页或下一页 UpdateActivePage:当Pages...在指定的索引中绘画一个图片 DrawOverlay:绘制一个图像并覆盖提供的画布 GetBitmap:重新指定一个指定索引中图片 GetIcon:将Index指定的图像作为位图返回到Image...与上面的区别是在它的事件中可以得到它的新值和单击是向上还是向下按钮 onClick:单击按钮时触发 THotKey 属性 HotKey:设置或获取热键 InvalidKeys:设置不允许有哪些热键...属性 Canvas:只读,用来访问画布 DragReorder FullDrag:指定标题在拖拽时是否重画 HotTrack:当鼠标经过每个项目的文本时,字符颜色是否发生变化。...:确定页流离颠沛滚动组件的滚动位置 方法 GetButtonState:返回按钮的状态 Scroll:页滚动组件滚动前立即产生 事件 OnScroll:当滚动时触发 TCommBoBoxEx

    7.8K10

    从零打造一个Web地图引擎

    (画布默认原点为左上角,x轴正方向向右,y轴正方向向下),也就是把中心经纬度作为坐标原点,那么中心瓦片的显示位置就是这个差值。...为什么x是减,y是加呢,很简单,我们鼠标向右和向下移动时距离是正的,相应的地图会向右或向下移动,4326坐标系向右和向上为正方向,那么地图向右移动时,中心点显然是相对来说是向左移了,因为向右为正方向,所以中心点经度方向就是减少了...: 可以看到已经凌乱了,这是为啥呢,其实是因为图片加载是一个异步的过程,我们鼠标移动过程中,会不断的计算出要加载的瓦片进行加载,但是可能上一批瓦片还没加载完成,鼠标已经移动到新的位置了,又计算出一批新的瓦片进行加载...知道原因就简单了,首先我们加个缓存对象,因为在拖动过程中,很多瓦片只是位置变了,不需要重新加载,同一个瓦片加载一次,后续只更新它的位置即可;另外再设置一个对象来记录当前画布上应该显示的瓦片,防止不应该出现的瓦片渲染出来...所以我们不妨加个过渡效果,当我们鼠标滚动后,先将画布放大或缩小,动画结束后再根据最终的缩放值来渲染需要的瓦片。

    5K20

    模拟知乎点赞小助手

    但是有个问题,视频播放过程会检测用户有没有操作,如果检测长时间不操作会弹框提示,只有点击弹框上的继续按钮才能继续播放,这就导致我们在刷课的时候要经常关注页面有没有暂停,刷课的效率有点低。...# 在当前位置点击鼠标左键 pyautogui.click() # 在屏幕的(200, 200)位置点击鼠标右键 pyautogui.click(200, 200, button='right') 滚动鼠标...正数表示向上滚动,负数表示向下滚动。这个单位并不直接对应于屏幕上的像素数量,而是依赖于操作系统和应用程序的滚动设置。...例如,在一些文本编辑器或网页浏览器中,一行可能被定义为一个文本行的高度,而在其他上下文中,则可能依赖于系统的滚动速度设置。...location = pyautogui.locateOnScreen('button.png', confidence=0.9) 注意事项 使用 pyautogui时,特别是在自动控制鼠标和键盘时,要确保有足够的安全措施

    1.6K10
    领券