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

Canvas鼠标滚轮缩放以及画布拖动(图文并茂版)

Canvas鼠标滚轮缩放以及画布拖动 本文会带大家认识Canvas中常用的坐标变换方法 translate 和 scale,并结合这两个方法,实现鼠标滚轮缩放以及画布拖动功能。...实现鼠标滚轮缩放 效果 实现原理 鼠标滚轮的放大需要结合上面介绍的 Canvas 的 translate 和 scale 两个方法进行组合变换。...,反之表示缩小,放大和缩小都有对应的阈值,超过阈值就禁止继续放大和缩小。...假设鼠标滚轮停在 A 点进行放大操作,放大之后得到坐标 A' 点。...this.ctx.scale(this.scale, this.scale); this.draw(); } 总结 本文从基础原理到代码实现,完整给大家讲解了 Canvas 画布绘制中经常会遇到的画布拖动鼠标滚轮缩放功能

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

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

一、鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 ---- 鼠标指针指向界面中的 Canvas 画布某个位置 , Canvas 画布中绘制着一张超大图片 , 以该位置为中心 , 滑动鼠标滚轮时进行缩放...; 使用鼠标滚轮缩放后 , 在 Canvas 中绘制的图片的尺寸肯定是放大或者缩小了 , 尺寸发生了改变 ; 图片缩放时 , 鼠标指针指向一个位置 , 该位置对应着一个当前 Canvas 画布中的 x..., 保存当前的鼠标位置及比例 ; 在鼠标滚轮事件 MouseWheelEvent 中 , 可以直接通过调用 e.getX(), e.getY() 获取到当前 鼠标指针 在 Canvas 画布的坐标 ;...offsetX = (int) (pointer_x - canvasX); offsetY = (int) (pointer_y - canvasY); } 二、绘制超大图像 + 鼠标拖动...addMouseMotionListener(new MouseAdapter() { // 鼠标拖动事件 public void mouseDragged

2.7K10

关于ScrollViewr和滚动轮劫持(scroll-wheel-hijack)

所谓的滚动轮劫持,简单来说即是在一个可以滚动的页面使用鼠标滚轮滚动页面的过程中鼠标进入某个可以滚动的子元素导致只在这个子元素中滚动而整个页面想滚滚不动了。 具体看看这个例子: ?...这个情况相信很多人都遇到过,滚轮被“劫持”后索性去拖动滚动条。...实现 在WPF中要禁止ScrollViewer捕获鼠标滚动时间,可以重写OnMouseWheel成一个空的方法: protected override void OnMouseWheel(MouseWheelEventArgs...e) { } OnMouseWheel方法用于响应鼠标滚轮的事件,将它重载成空方法即不再处理鼠标滚利事件。...熟悉了上面几个属性的作用后我们可以更好地控制鼠标滚轮的行为,当鼠标向上滚动时,判断现在是否已经滚到顶了,如果是就不处理鼠标滚轮事件: if (VerticalOffset == 0 && e.Delta

1.2K30

随心所欲的滚动条,远离产品汪(二)

滚轮事件及兼容问题概要 在鼠标上,除了点击、拖拽等事件,当然也少不了滚轮事件了,但是比较有意思的一点是,平常大家碰到兼容问题首先想到了IE这个万年背锅侠,但是这次还真不是,火狐别树一帜的凑了一回热闹。...首先,我们需要明白我们的滚轮是作用在谁的身上,根据实际需求来进行事件绑定,当我们鼠标移入可视区时,会触发滚轮事件,在移出可视区时则清除滚轮事件,接下来进行具体代码操作。...ps:此处为了方便理解使用jQuery来实现,记得引入呦。 较之上篇的实现代码,本篇中增加了两个变量。...Y轴坐标 newY = 0, // 鼠标拖动时的Y轴坐标 nowY = 0, // 鼠标拖动时滚动条C距父级顶部的高度 maxY = 0,...// 拖动的最大极限值 nowDisY = 0, // 点击滚动条C时距父级顶部的高度 judge = 0, // 判断鼠标滚轮的方向

2K80

jimojianghu

禁止缩放 有天,辛苦做了个复杂操作功能的页面,上线后有用户反馈:很多功能使用不了。惊了,以为是哪里出了bug。...触控板 要禁止触控板的缩放行为,需要处理鼠标滚轮事件:wheel 。 因为笔记本触摸板双指滑动,将响应该事件,如果对该事件阻止默认行为,就能解决缩放问题了。...请注意,滚动向上(pan-up)意味着用户正在将其手指向下拖动到屏幕表面上,同样 pan-left 表示用户将其手指向右拖动。...笔记本触摸板双指滑动,将响应滚轮事件,因此可以监听该事件,禁止触摸板手指缩放界面。 但需要注意滚轮默认事件,如会导致子元素滚动失效,这时候就要在子元素上阻止相同事件冒泡。...添加 passive 参数为true后,touchmove 事件不会阻塞页面的滚动(同样适用于鼠标滚轮事件)。

3.8K00

jquery nicescroll 配置参数

jQuery滚动条插件兼容ie6+、手机、ipad http://www.areaaperta.com/nicescroll/ jQuery(function($){ $("#scrollInner...默认为​​“递四方” zIndex的 - 改变z-index值的滚动条的div,默认值是9999 scrollspeed - 滚动速度,默认值为60 mousescrollstep - 高速滚动鼠标滚轮...,冒泡鼠标滚轮事件(默认:true) railoffset,您可以添加抵消顶部/左边的轨道位置(默认:false) bouncescroll,使滚动弹跳在内容结尾作为移动像(仅HW ACCELL)(...(defaul:“底部”) enabletranslate3d,nicescroll可以使用CSS转换为滚动内容(默认:true) enablemousewheel,nicescroll可以管理的鼠标滚轮事件...API(对象拖动同样的问题)(默认:true) cursorfixedheight,用于光标在像素设置固定的高度(默认:false) hidecursordelay,设置在微秒淡出滚动条的延迟时间(

4.1K80

再谈BOM和DOM(5):各个大流浪器DOM和BOM里面的那些坑—兼容性

万恶的滚轮事件 滚轮事件的支持可谓是乱七八糟,规律如下: IE6-11 chrome mousewheel wheelDetla 下 -120 上 120 firefox DOMMouseScroll...detail 下3 上-3 firefox wheel detlaY 下3 上-3 IE9-11 wheel deltaY 下40 上-40 chrome wheel deltaY 下100 上-100 关于鼠标滚轮事件...判断鼠标滚轮是向上还是向下,IE是通过wheelDelta属性,而火狐是通过detail属性 js在操作DOM中存在着许多跨浏览器方面的坑,本文花了我将近一周的时间整理,我将根据实例整理那些大大小小的“...问题一:Firefox,Chrome、Safari和IE9都是通过非标准事件的pageX和pageY属性来获取web页面鼠标位置的。...问题:   FF需要用CSS禁止,IE用JS禁止   解决方法:   IE: obj.onselectstart = function() {return false;}   FF: -moz-user-select

94340

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

文章目录 一、使用鼠标滚轮放大缩小 Canvas 画布 - 要点分析 1、鼠标滚轮事件 2、核心代码示例 二、绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放示例 1、代码示例 2、效果展示 一、使用鼠标滚轮放大缩小...1.0 设置鼠标滚轮监听 , 在 Canvas 组件中 , 调用 addMouseWheelListener 函数 , 添加 鼠标滚轮监听器 MouseWheelListener , 实现该监听器中的...void mouseWheelMoved(MouseWheelEvent e) 函数 , 当鼠标滚轮滑动时 , 通过 MouseWheelEvent 对象 , 获取鼠标滚轮的滑动方向 , 向上滑动时...+ 鼠标滚轮缩放示例 ---- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移...| 画布偏移 ) 博客中 , 绘制了超大图像 , 可以使用鼠标拖动 , 这里在上述基础上 , 新增鼠标滚轮缩放示例 ; 1、代码示例 代码示例 : import javax.swing.*; import

2.2K30

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

+ 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ---- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭...| 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客中 , 绘制了超大图像 , 可以使用鼠标拖动 ; 在 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器...MouseWheelListener ) 博客中 , 新增鼠标滚轮缩放画布示例 , 但是使用鼠标拖动时 , 拖动的效果也随之缩放, 如 缩小画布后 , 移动鼠标 , 移动距离对应的缩放效果也随之缩小...; 在 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布中绘制的背景图像 ( 鼠标滚轮事件监听器 MouseWheelListener | Canvas 中绘制图像并设置图像大小...) 博客中 , 使用缩放背景图像的方式 , 实现缩放效果 , 并同时福袋鼠标指针拖拽效果 ; 本博客中实现的案例 , 在上面的基础上 , 添加了鼠标滚轮缩放的中心点设置为当前鼠标中心点 ; 1、代码示例

1.8K20

Blender 基础操作

旋转视野:按住鼠标滚轮 拖动鼠标 2. 移动视野:按住Shift+按住鼠标滚轮 拖动鼠标 3. 缩放视野(镜头远近):滑动鼠标滚轮 或者 按住Ctrl + 按住鼠标滚轮拖动鼠标 4....侧视图/顶视图:按住Alt + 按住鼠标滚轮拖动鼠标,可以快捷的进入侧视图、顶视图 5....移动:进入移动模式可以直接点击左侧菜单中的移动按钮,也可以使用快捷键Shift+Space弹出菜单后,再使用快捷键G 移动模式选中物体后,会出现X、Y、Z坐标轴,拖动坐标轴即可沿该轴进行移动: 除了三个箭头外...,还有三个四边形,按住进行拖动表示锁定该轴,在其它两个坐标轴上进行移动: 除了上述移动方式外,还可以在选中物体后,直接使用快捷键G,按下G键后,该物体会随着鼠标移动而移动,点击鼠标进行放置停止跟随,在跟随时使用...X、Y、Z快捷键可以让物体沿着某一个轴跟随鼠标移动: 6.

90810

Qt实现小功能之列表无限加载

当用户往下拖动滚动条或使用鼠标滚轮的时候,页面会自动加载剩余的内容。如下: ?      ...简约而不简单,正是这种别出心裁,突破常规的设计才能得到用户的青睐…… 实现思路        在前端开发可以使用一些jQuery插件实现这种效果,后台只需要准备好数据就行了。...因为我们打算对鼠标滚轮事件作出一点点不一样的动作:当滚动条滚动的时候在主窗口的lineEdit中更新滚动条的当前位置;当滚动条滚到最底端的时候发送一个信号,以此更新ListWidget中的数据内容。...实际效果       鼠标滚动到底部的时候,每次插入5条数据。 ? Qt-vs-addin的小问题        使用Visual Studio进行Qt开发的时候,需要安装一个插件。

3.1K70

GoogleMaps_键盘网站

鼠标锁定位置中心可以通过Shift触发。也可以用中间滚轮和右键触发。 提示:要减慢移动速度,请按住 Alt 并同时使用键盘快捷键。...查看第三视角(鼠标锁定位置) 按住 Shift,然后点击并拖动 屏幕会显示中心,且鼠标变为上下箭头 查看第一视角(相机视角) 按住 Ctrl,然后点击并拖动 鼠标会变为十字 顺时针旋转(鼠标锁定位置)...+左键 以相机视角为中心自由观察 在3D视图和俯视图、地平面视图,点击左键,拖拽 Ctrl+左键 拉近/推远 在地平面视图,点击左键上下移动 放大 双击左键 鼠标滚轮中键和键盘放大缩小的区别,...鼠标滚轮会以当前鼠标左键位置为中心,键盘会以屏幕中心为中心。...缩放(鼠标锁定位置) 中键滚动 以鼠标锁定位置为中心自由观察 按住中键拖动 比左键配合Shift更方便。

1.5K20

后台管理tab栏滑动解决方案

后台管理系统中比较常见的布局是左边菜单栏,右边tab切换栏,但是一般的tab组件不包含tab页过多的切换问题的,所以需要个性化实现,本文的实现方案是滑动鼠标滚轮绑定tab达到切换的效果,先上一个动态图看下效果...(此处禁止鼠标滚轮行为关联到"屏幕滚动条上下移动"行为) event.preventDefault(); var left = (table.scrollLeft()...(此处禁止鼠标滚轮行为关联到"屏幕滚动条上下移动"行为) event.preventDefault(); var left = (table.scrollLeft() -...} }) 滚动条我们也需要美化实现以下,通过重写::-webkit-scrollbar属性,针对类或者指定dom重写只需要加上选择器即可,例如.tabmain::-webkit-scrollbar 页面为系统集成页面所以不方便放例子了...,相关效果查看可以查看码云FastExecutor项目的演示示例,页面具体代码地址: code/FastExecutor/FastExecutor/Views/Frame/Home/Index.cshtml

31430
领券