问题标签 [pointer-events]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4868 浏览

html - 禁用与指针事件的链接,但保持活动 :hover 事件

我不想使用属性选择器禁用主页中的链接,pointer-events: disable;但我想保持 :hover 效果。

这是CSS:

这个网站:www.rafagarces.com/work

谢谢!

0 投票
0 回答
41 浏览

css - chrome 是否有意防止 css :hover thrashing

例如,在 Chromium 58.0.3029.81 中,如果您通过拖动文本选择来弄乱它一段时间(可能需要一分钟),以下内容将停止在可选择和不可选择状态之间闪烁。之后它似乎总是保持pointer-events: none状态直到重新加载,即使选项卡被切换。

https://codepen.io/anon/pen/ZKeaRm

例如,在 Firefox 中似乎没有发生这样的超时。

我的问题是这是故意的还是无声的错误。

0 投票
0 回答
1899 浏览

javascript - 使用 Surface Pen 进行画布绘图

我目前正在使用此代码用 Microsoft Surface 上的笔在画布上绘图(当然是在表面上):

到目前为止一切顺利,工作正常。

我现在打算做的是,画布会对我的表面笔上的压力做出反应。

我知道它PointerEvent有一个属性pressure,我知道对于画布,有lineWidth. 但是我怎样才能把它们结合起来呢?所以当我只施加一点压力时,我会得到一条细线,而压力越大,线就越粗?

谢谢

编辑:刚刚意识到,代码中似乎存在问题,即使用笔绘图,它似乎也跳转到 else 情况(所以使用鼠标的后备),试图console.log在 if 部分添加 a,而且它没有打印出来……这是为什么呢?

0 投票
1 回答
471 浏览

javascript - 如何根据点击位置查找嵌套和转换的 SVG 元素(例如圆/路径/...)

我是 Web 开发和 svg 相关主题的初学者。

我认为这对你的 svg 专家来说应该很容易,但我现在为此苦苦挣扎了一段时间。我在这个主题上找到的所有资源似乎都不适用于我相当简单的目标。

我的应用程序应该在 Chrome 浏览器中运行。

DOM 结构如下:

虽然里面可能有更多的 svg 标签或嵌套的 svg 元素,但这是一般设置。

目标:

我想单击某处并找到位于我单击位置的 svg 子元素(例如圆圈)。我想到的基本功能是:

问题:

1)所有元素都可以进行转换,例如应用于它们的平移、缩放和旋转,这使事情变得复杂。

2)我只希望能够单击元素,它们是 svg 节点的子节点。

我的一些尝试:

https://jsfiddle.net/a6uLn9cn/3/

我试图将“pointer-events:none”放在 DIV 和/或 SVG 节点上。这样,我就可以避免这些是“可点击的”。但是这里有两个问题:我需要 SVG 节点上的指针事件,因为它需要被缩放和平移,以及例如圆圈上的点击事件以某种方式“冒泡”到 DIV。

另一种确保 svg 节点的子节点是“可点击”的方法是检查 element.ownerSVGDocument 中找到的元素。如果它为 null 或未定义,我知道找到的元素不是 svg 子元素。

为了解决实际单击已转换的元素(通过其自身或通过其父元素)的问题,我尝试使用 element.getBoundingClientRect() ,它为我提供了元素的周围矩形。有了这个,我做了一个函数来确定点击是否在矩形周围的元素内:

e 是点击事件,elem 是 document.elementFromPoint() 收到的找到的元素

但是在我的 jsfiddle 中,您将无法“单击”例如其 boundingClientRect 最右侧的路径,如果您想象 boundingClientRect 在哪里,这对我来说毫无意义。

此外,如果我在添加圆圈后将路径添加到 DOM,我将无法再单击圆圈,而只能单击路径。我完全明白为什么,但如果我需要同时点击两者怎么办?

我不确定我是否能够在这里解决我的麻烦,但我会非常感谢你们可能给我的任何意见。非常感谢。

0 投票
4 回答
4770 浏览

javascript - CSS 指针事件 – 接受拖动,拒绝点击

tldr; 我需要一个元素来注册拖放指针事件,但将单击和其他指针事件传递给它后面的元素。

我正在使用react-dropzone. 我希望dropzone它覆盖整个页面,因此如果您将文件拖到页面的任何部分,您可以将其拖放以上传图像。当dropzone没有文件被拖到它上面时它是透明的,所以我需要点击来注册它后面的元素。

为此,我为 dropzone 组件赋予了以下样式:

但是,pointer-events: none;会导致dropzone无法识别必要的拖放事件。有没有办法识别这些特定的指针事件,同时将其他事件(如点击)传递给dropzone?

0 投票
1 回答
1447 浏览

react-native - Modal 上没有指针事件

有没有办法设置pointerEventsnonea 上Modal?我正在尝试在其父母范围之外渲染一个子视图,我能做到这一点的唯一方法是使用Modal. 忽视pointerEvents孩子似乎没有用。

0 投票
1 回答
248 浏览

javascript - 如何使用 Polymer 2 在 Firefox 上的 web 组件中捕获指针事件?

我已经构建了一个 javascript 库,它将指针事件侦听器附加到 DOM 元素(此处)。今天,我在 Polymer 1.9 Web 组件中使用它来包装它,使用PEP在 Firefox 上填充指针事件,它工作正常:

我只是elementDomElement.addEventListener('pointerdown', (e) => { // Some code });在注册下做,没什么特别的。

迁移到 Polymer 2 后,我有类似的东西:

在 Chrome 和 Edge 下可以正确处理指针事件,但在 Firefox 中,事件会卡在 shadowRoot 上。如果我正在听this,例如 shadowRoot,我可以处理它们,但不能在editorDomElement.

我做错了什么还是 Firefox 上的 Polymer 2 事件转发有问题?是否有解决方案或解决方法使其工作?谢谢

0 投票
2 回答
1484 浏览

javascript - 有没有办法在指针事件设置为无的元素上触发 JavaScript onclick 事件?

我有一个将指针事件设置为无的元素,因此不会显示子元素的悬停样式。

但是,当单击此元素时,我想用 JavaScript 做一些事情。在 JavaScript 中使用 onclick 事件似乎不起作用,因为 pointer-events 设置为 none。

有没有办法解决这个问题,这样我就可以拥有一个没有指针事件的元素仍然可以触发 JavaScript 事件?

JavaScript:

干杯

0 投票
1 回答
750 浏览

css - 如何防止图像的侧面被选中

下面我有一张图片,后面是文字。如何防止它周围的区域被突出显示?图像本身不可选择(使用

) 但图像的周围区域是。我尝试为图像添加左右边距以及使图像成为自己的 div 并将上述代码应用于 div,但它不起作用。(我将高光设为绿色)

看这里

编辑:这是链接在这里的另一个示例https://jsfiddle.net/nnzf4h5c/jsfiddle 示例

0 投票
0 回答
25 浏览

javascript - Javascript需要在drawImage下面点击

我有一个带有按钮的地图,我可以点击这些按钮,但想在顶部添加一个图形图层。问题是(即使我正在阅读的所有内容都说它不应该这样做),当单击具有像素的 topLayer png 的任何部分时,它不允许我单击下面的按钮。我基本上想让topLayer 不可点击,我已经尝试了各种名称的pointerEvents 的各种变体......我唯一能够使用drawImage 操作的是globalAlpha。

我到底如何防止这种情况掩盖我的点击?