- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个目标应该在它的父级中移动,点击该父级。
一些 fiddle :http://jsfiddle.net/GMerZ/
一些 HTML:
<div id="rControl">
<p>R1 / R2</p>
<div class="widget">
<div class="target"></div>
</div>
</div>
一些通过 CoffeeScript 的 jQuery:
rControl = $('#rControl')
widget = rControl.find '.widget'
target = rControl.find '.target'
clicked = no
widget
.mousedown =>
clicked = yes
.mouseup =>
clicked = no
.mousemove (e) =>
if clicked
target.css
top: "#{e.offsetY}px"
left: "#{e.offsetX}px"
问题是目标在您拖动时会四处抖动。似乎是第一个事件将小部件放在光标下,第二个事件发生在目标上而不是小部件背景上,因此现在偏移量是相对于目标而不是父小部件,并且偏移值要小得多。目标现在会错误地移动到小部件的左上角。
显然,目标不应该处理这些事件,也不应该根据目标的位置提供点击位置信息。
我怎样才能使它工作,以便在每次触发事件时获得鼠标相对于 .widget
的位置,而不管鼠标是否在 .target< 中
?
此外,我很乐意在不重新排列 HTML 强制目标位于小部件下的情况下执行此操作,我一定缺少一些棘手的事件委托(delegate)魔术。
最佳答案
只需过滤掉 mousemove
调用,只对 widget
触发的调用进行操作:
更新的 JS(只是对 mousemove
if
的一个小改动):
rControl = $('#rControl')
widget = rControl.find '.widget'
target = rControl.find '.target'
clicked = no
widget
.mousedown =>
clicked = yes
.mouseup =>
clicked = no
.mousemove (e) =>
if clicked and e.target == widget[0]
target.css
top: "#{e.offsetY}px"
left: "#{e.offsetX}px"
参见 on jsfiddle .
关于javascript - OnMouseMove拖动,目标错误拦截事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271349/
我确定我在这里遗漏了一些简单的东西,但我很难过。 为什么 addEventListener 和 removeEventListener 函数在这些 React 生命周期方法中不起作用,但它们下面的注释
我真的不知道如何在标题中表达这一点,但我正在尝试创建一个包含所有事件函数的类,但我遇到了奇怪的问题。 这是问题的一些模拟代码。 class Mouse{ constructor(){
我正在学习使用 onmousemove 事件,但无法使其工作,其想法是稍微倾斜图像以创建一种效果,就像它跟随鼠标一样,我猜是一种视差。这就是我想要实现的目标: https://tympanus.net
这个问题已经有答案了: How to get mouse position in jQuery without mouse-events? (7 个回答) 已关闭 3 年前。 在 Javascript
这个问题已经有答案了: What is the (function() { } )() construct in JavaScript? (28 个回答) 已关闭 3 年前。 我正在编写一些 Java
我有下一张 table : div class="container">
我正在尝试使用 javascript 创建一个自定义视频播放器,代码应该在 onmousemove 事件上显示叠加层它确实触发了代码但由于某种原因两次,我认为这是因为每个顶部都有双全屏 div其他,但
function aim() { var mousex = ? } 我找不到如何在 javascript 中获取 onmousemove 事件的鼠标坐标。 最佳答案 var guide =
我搜索了本博客和其他博客中提供的答案,但没有找到任何解决方案。非常感谢您的帮助。 我有一个 onmousemove 事件,它正在执行要触发的事件列表中的第一项,但不会执行第二项。 document.g
我正在我网页上的一个 div 中加载一个外部网页(即本例中的 www.duckduckgo.com)。我想在 div 内部和外部获取鼠标的 X 和 Y 位置,但是当我在 div 内部时,网页似乎阻止了
我正在做一个jsp页面,它记录了鼠标在该页面上的时刻。我有记录时刻的代码,但我不知道如何将总时刻的最终值传递给变量? onmousemove: Mouse over and leave me!
我已经对 javascript 中的事件进行了一些研究,但仍然无法弄清楚 onmousemove 中传递给事件的内容是什么。 摘自:W3schools onmousemove="show_coords
我想在单击鼠标并在元素上方更改背景颜色,并可以移动它,这样您就不必单击每个元素,而是能够用鼠标“绘制”。但我不知道怎么办。我现在的代码如下 function change_color(x, y) {
我的应用程序有 350 个编辑字段,所有这些字段都应有一个 OnMouseMove 事件。我已经为所有这些生成了以下代码: ... type ... procedure Edit1MouseMo
var zoomPad = document.getElementsByClassName('zoomPad'); zoomPad[0].onmouseover = function(){ v
这可能已得到解答,但无法在搜索中找到任何正面结果。 有一个脚本可以使用各种额外的计算来移动元素“正常” x,y 定位。 我没有使用 JQuery 或任何其他库,但这里有一个核心示例:>> fiddle
我这里有一个真正的问题。我希望仅当单击对象以及将鼠标移到对象上时才调用函数。这是一个示例(忽略奇怪的语法)以帮助您理解: 我正在想一个办法来解决这个问题。如果我创建一个 onMouseDown 来触
为了给我们的 Web 应用程序添加一些个性,我在某些元素上添加了一些动画,当鼠标靠近时,我们的机器人吉祥物会从后面窥视。为此,我使用 onmousemove 函数来检查光标的距离,并在鼠标靠近时为机器
大家好:)如果我在示例中使用鼠标指针传递 div,函数在控制台中打印两次,这意味着 onmousemove 事件被触发两次。我还打印了鼠标指针的坐标以及您如何在下图,我也没有垂直移动,只是水平移动。考
我正在实现“调整大小 handle ”来更改左侧导航面板的宽度。这是一个div收到onMouseDown()事件,计算必要的宽度并将它们应用于后续调用中的正确元素 onMouseMove() .但我遇
我是一名优秀的程序员,十分优秀!