在 CSS 缩放画布中获取正确的鼠标位置

2024-01-03

我一直在尝试采用几个简单的 MooTools 操作的逻辑并将其转换为与 jQuery 一起使用。

我想要的逻辑是这样的jsfiddle http://jsfiddle.net/rQkSF/它允许通过 css 调整大小来获得画布元素上准确的鼠标位置。

我找到了在这里回答 https://stackoverflow.com/questions/4152518/resizing-the-canvas-with-css-skews-up-mouse-action-help-me所以我已经工作了几个小时但无济于事

我想我理解他的逻辑,但由于某种原因我没有看到结果

这是我到目前为止对 arby 的逻辑所做的事情answer https://stackoverflow.com/questions/4152518/resizing-the-canvas-with-css-skews-up-mouse-action-help-me/4171800#4171800注释掉了

// Get the change ratio for the new css set size
//var cssScale = [canvas.getSize().x / canvas.get('width'), canvas.getSize().y / canvas.get('height')];
var cssScale = [$('canvas').height() / $('canvas').attr('height'), $('canvas').width() / $('canvas').attr('$('canvas').height() / $('canvas').attr('height'),')]

//Create an object of the dimensions
// I think from my looking at the jsfiddle x&y is the position of the rect in his canvas
// and w&h are the height and width of that rect so it's not really necessary for my problem which
// is just getting mouse cords accuratly.
//this.setDims(x*cssScale[0], y*cssScale[1], w*cssScale[0], h*cssScale[1]);

// This is the offset of the clickable square in his code.
//this.offset = [x - this.dims[0], y - this.dims[1]];

// Now I do not know what this is
// If the offset is just for position in their code why is it used here
// How can you display just scaled mouse position
this.x = (x - this.offset[0]) / cssScale[0] + w * .5;
this.y = (y - this.offset[1]) / cssScale[1] + h * .5;

我做了一点demo http://jsfiddle.net/Ea4kc/使用纯 JavaScript。我有一个博客文章 http://www.gkspk.com/view/programming/drag-n-drop-with-html-canvas/解释过程。

看一下示例,特别注意变量的位置sx and sy正在被使用。它们是您的缩放比例。您基本上需要将其应用于画布内的任何偏移(即鼠标在屏幕中的位置减去画布偏移).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 CSS 缩放画布中获取正确的鼠标位置 的相关文章

  • 以一定时间间隔连续重复运行 JavaScript 函数

    这是我的第一个问题 希望您尽快回答 我想要代码连续重复一个函数 我尝试了一些代码 但没有成功 我尝试了这段代码 我想在一段时间后重复这个功能 我努力了setInterval and setTimeout 但是 我还没有收到结果 这将重复该任
  • jQuery 从选择选项切换 div

    我需要从下拉选择选项框中切换 div 我想要它类似于汇编选择 http www ryancramer com projects asmselect examples example1 html对于 jquery 但我不想列出选项标签 而是希
  • 如何更改自动完成中的结果过滤器?

    我不想进行字面匹配 而是想通过正则表达式选择结果 我可以覆盖自动完成的默认行为来完成此任务还是需要替代结构 有一个内置的方法可以做到这一点 只需提供一个函数source http jqueryui com demos autocomplet
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks
  • 使用 json 向 RESTful WCF 发送 Post 请求

    我已经尝试了每种组合来发送请求 以从 jQuery 向 RESTful WCF 发送 POST 请求 有人可以模仿并使其发挥作用吗 代码在这里 http pastebin com Ua97919C http pastebin com Ua9
  • jQuery 或 Javascript - 如何禁用窗口滚动而不溢出:隐藏;

    您好 是否可以在不使用的情况下禁用窗口滚动overflow hidden 当我悬停一个元素时 我试过 chat content on mouseenter function document scroll function e if e h
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • 反馈选项卡,如 www.monyta.com [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣添加一个在我的页面上托管的反馈选项卡 没有第三方 如 uservoice monyta gets
  • HTML5 仅拖放图像

    我想做的是 如果所有拖动的文件都是图像 则将其删除 但如果有其他文件扩展名 则不要删除它们 而仅删除图像 这是我的尝试 HTML div div JavaScript var dropzone document getElementById
  • 如何使用 jQuery 进行同步请求?

    为什么不返回该函数的responseText function LoadBookmarksAsXml return ajax type GET async false url http www google com bookmarks ou
  • 通过 jQuery 选择动态 HTML 元素

    我正在构建一个 ASP NET MVC 应用程序 并且正在使用jQuery Blueimp https github com blueimp jQuery File Upload动态添加到页面的 PartialView 上的插件 根据插件的
  • 如何确定并打印 jQuery 版本?

    是否有一个 jQuery 函数可以返回当前加载的 jQuery 版本 你可以使用这个 fn jquery or if you re using noConflict jQuery fn jquery 当 jQuery 构建时它会自动更新 定
  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 如何判断一个网页是否支持jquery?

    确定网页是否启用 jquery 的最佳方法是什么 如果这是确定它的最佳方法 则使用 jquery 本身 if jQuery jquery object exists jQuery 并不神奇 它本质上只是一个大对象 您可以像检查任何其他对象一
  • JQuery datepickers-从开始日期设置结束日期

    使用了两个 Jquery 日期选择器 StartDate 和 EndDate
  • 如何禁用 body 元素的滚动?

    如何禁用正文滚动 body css overflow hidden 仅隐藏滚动条 但不会禁用滚动 我想禁用正文的滚动 但我想保持其他分区的滚动完好无损 试试这个 CSS 不需要 jQuery 评论后更新 尝试指定高度body too
  • .live() 或 .livequery()

    我有一个Ajaxed的网站 Ajax的内容来自其他页面 例如about html contact html ajax 从名为 main content 的 div 获取内容 但是在 ajax 调用之后 我的其余脚本就中断了 比如tinysc
  • jquery 插件“uploadify”-从上传脚本返回响应的方法?

    我的标题代码 document ready function sampleFile uploadify uploader include uploadify uploadify swf script add list php scriptD
  • 如何在画布上所有其他内容后面绘制图像? [复制]

    这个问题在这里已经有答案了 我有一块画布 我想用drawImage在画布上当前内容后面绘制图像 由于画布上已经有内容 我正在使用字面上的画布来创建包含图像的画布 因此我无法真正先绘制图像 所以我无法使用drawImage在我呈现其余内容之前
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工

随机推荐

  • $mysqli->prepare 返回 false,但 $mysqli->error 是一个空字符串

    在我的代码中 我执行了几个有效的 SQL 语句 但其中一条语句无效 mysqli gt prepare 返回 false 但没有返回错误代码 mysqli gt error 返回 false 这是代码示例 mysqli new mysqli
  • bootstrap-datepicker:如何使用特定时区?

    我创建了一个小程序来选择日期引导日期选择器 https github com eternicode bootstrap datepicker并将其写入MySQL 问题是这个日期必须是本地日期Europe Berlin无论用户此时身在何处 d
  • Google 地图事件侦听器在 Javascript“for”循环中无法正常工作

    我正在尝试设置一个 Google 地图实例 其中为一组点动态生成一些内容 现在 我正在使用 for 循环来循环任意数量的纬度和经度值 并创建地图上这些点的标记 我正在尝试添加与每个标记相对应的信息窗口 并在您单击标记时弹出它们 不过 我遇到
  • Android 截取屏幕外页面的屏幕截图

    我正在开发一个 Android 应用程序 我有一个活动 比如说 A 它用视图填充整个屏幕 在 A 中单击按钮时 我想启动另一个活动 比如说 B 它也有一些视图和控件 我希望 Activity B 位于屏幕外 并希望从 A 截取 B 的屏幕截
  • BASH 对话框 动态菜单

    我需要使用数组中的变量创建一个带有对话框的动态菜单 这是我的代码 bin bash file teste cfg count 0 while IFS read nomeTarefa dirOrigem dirDest tipoBkp age
  • 如何在不更改 kubernetes 中部署 yaml 的情况下滚动重启 Pod?

    在 kubernetes 中 有滚动更新 自动无停机 但没有滚动重启 至少我找不到 我们必须更改部署 yaml 有没有办法让滚动 重新启动 最好不更改部署yaml 在 kubernetes 1 15 之前 答案是否定的 但是有一种解决方法可
  • SlimDX:在 Visual Studio 2010 中无法看到 Direct3D 调试输出

    我已经安装了 2010 年 6 月的 SDK 在 DirectX 控制面板中启用调试运行时 将调试输出级别设置为最大 更多 启用非托管代码调试 结果 Direct3D 的调试输出丢失 但是 如果我从外部启动应用程序并使用 dbgview e
  • 如何在 ActiveAdmin 上过滤布尔列?

    这个问题与活动管理员 https github com gregbell active admin宝石 我正在尝试过滤具有布尔类型的列 但没有成功 filter column name and filter column name as g
  • 用json、python保存键为元组的字典

    我正在用 python 编写一个小程序 并且使用一个字典 其 如标题所示 键和值是元组 我尝试使用 json 如下 import json data 1 2 3 a b c 2 6 3 6 3 2 print json dumps data
  • -D_DEFAULT_SOURCE 的作用是什么?

    之前我收到过来自gcc std c99 that usleep 被隐含地声明了 然后我偶然发现这个 stackoverflow 帖子 https stackoverflow com a 10053817 2002146 这导致我使用 D B
  • 整数真常数的类型是什么?

    很抱歉问了一个非常基本的问题 考虑以下示例 const c1 1 Is this Byte or ShortInt c2 1234 Is this Word or Smallint c3 123456 Is this Cardinal or
  • C# - 如何使用自定义字体而不将其安装在系统中

    我再次需要你的帮助 我正在 C 上开发一个使用自定义字体的小型应用程序 问题是 字体必须预先安装在系统上 如果系统中不存在该字体 则仅使用 Times New Roman 有没有什么方法可以将字体文件嵌入到应用程序中 这样就不需要在每个系统
  • Vue 或 Axios 不存储会话 cookie

    我遇到了问题 但我不知道问题出在哪里以及为什么 我有一个基于express4 nodejs 的后端API我们已经使用护照实现了Auth 当我使用邮递员时 我使用 login 上的 post 进行登录 它存储一个会话 cookie 并且所有路
  • JavaScript 无法找到元素 id

    我的 javascript 函数位于 javascript 文件中 因为该函数使用了我页面的大部分内容 function setSecondaryItem var select document getElementById var len
  • 从字符串创建 Pandas DataFrame

    为了测试一些功能我想创建一个DataFrame来自字符串 假设我的测试数据如下 TESTDATA col1 col2 col3 1 4 4 99 2 4 5 200 3 4 7 65 4 3 2 140 将数据读入 Pandas 的最简单方
  • _declspec 和 __declspec 之间的区别?

    我有时会看到关键字以两个下划线开头 有时则只有一个 有什么区别吗 我相信 declspec是同一 Microsoft 特定关键字的旧名称 declspec 从 C 标准的角度来看 对于这样的扩展 两个下划线比单个下划线更正确 根据 17 4
  • 创建或附加到字典中的列表 - 可以缩短吗?

    可以使用 itertools 和 set 缩短此 Python 代码并仍然可读吗 result for widget type app in widgets if widget type not in result result widge
  • 如何在某种条件下跳过第一个活动

    我正在将一组应用程序构建为类似于 MS Office 的包 这里每个应用程序都有自己的启动器 并且可以从家庭应用程序内部启动 每个应用程序都有一个登录页面 当应用程序从 android 启动器启动时 我需要显示登录页面 而从家庭应用程序启动
  • 如何以编程方式强制停止应用程序 - Android

    我想从我的 Android 应用程序中强制停止应用程序 而不是通过 Man apps gt force stop 手动执行 如何实现这一目标 Process killProcess Process myPid
  • 在 CSS 缩放画布中获取正确的鼠标位置

    我一直在尝试采用几个简单的 MooTools 操作的逻辑并将其转换为与 jQuery 一起使用 我想要的逻辑是这样的jsfiddle http jsfiddle net rQkSF 它允许通过 css 调整大小来获得画布元素上准确的鼠标位置