【问题标题】:I need javascript event to override CSS pointer-events我需要 javascript 事件来覆盖 CSS 指针事件
【发布时间】:2020-03-13 13:06:28
【问题描述】:

我有一个图像在光标结束时避免用户滚动,并且它处于非常糟糕的位置,因为它位于几乎每个人都进行滚动的移动手指友好区域。我尝试使用指针事件:null;然后可以滚动,但是这个图像是一个按钮,现在显然也阻止了点击事件。

我尝试通过 JavaScript 应用它,但它没有覆盖 CSS 属性,所以我想知道是否有办法做到这一点。

CSS

.element-id {
    position: fixed;
    pointer-events: none;
}

功能

$('#element-id').click(function(){
    $('#entrevista').toggleClass('ws-visible');
    $('#video').get(0).play();
});

编辑:

我的问题是一个固定的定位元素正在影响页面的常规滚动行为。

我在互联网上搜索时发现“冒泡”,但我不太了解。有什么可以帮助的吗?因为如果我理解了基础知识,它会使事件在 DOM 中更深入,所以我想它是从上层元素传播到下层的。是这样的吗?

【问题讨论】:

    标签: jquery css events scroll pointer-events


    【解决方案1】:

    也许不是最佳解决方案,但它确实有效...

    第 1 步:
    删除pointer-events: none; 样式。

    第 2 步:
    使用wheel(旧浏览器mousewheel)事件在不可滚动的图像上滚动。图片不提供滚动,但可以通过wheel 事件计算。为此,我强烈建议使用jQuery and the jQuery Mouse Wheel Plugin。它为你做这个计算。 See also this question.

    第 3 步:
    使用 JavaScript 的原生 Element#scroll(...)(或 jQuery)手动将滚动传递给应该滚动的元素。

    编辑

    请阅读此答案的 cmets,以了解为什么这不是问题 Manually trigger a scroll event of DOM element? 的重复,以及为什么其他问题的答案可能对您有更好的帮助。

    【讨论】:

    • @JuanMendes 啊……不完全是。非滚动对象不会触发滚动事件!这个问题既不是它的重复,也不是顶级解决方案提供帮助!
    • 确实如此,它说您应该手动设置正文(其他元素)的滚动?我最初确实链接到了错误的问题,如果你解释为什么你不同意,我会重新打开它。
    • 没有。鼠标滚轮和滚动是 js 中高度不同的事件!这不是我的建议!这是不同的,因为鼠标滚轮也会在不可滚动的对象上触发。并且 $('.e1').scrollTop() 如果它不可滚动,则不提供滚动顶部信息!这是完全不同的情况!
    • @JuanMendes 很抱歉,我没有在我的解决方案以及鼠标滚轮和滚动事件中提供足够的信息。我也没有解释为什么我推荐“jQuery Mouse Wheel Plugin”。我会编辑我的答案。我还是那个网站的新手。
    猜你喜欢
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2019-01-08
    • 2017-03-25
    • 1970-01-01
    相关资源
    最近更新 更多