Vue怎么穿透上面Dom(上层也要可以触发),同时可以触发底层的Dom元素的事件

div A百分百遮盖了 div B, 怎么 样保证,A与 B的事件都能触发
A是scroll事件
B是其它事件

pointer-event:none 在这个场景是没用处

divA添加和divB一样的事件,然后在divA的事件中调用divB注册的事件,前提是divA和divB的事件不存在一样的,比如click,如果有一样的,那就没法区分是要操作divA还是divB了。除非一样的事件有区间性,可以通过点击的clientX,clientY判断下点击区间,在divA的区间就触发divA需要的事件,否则触发divB的。

js触发事件可以参考下面文章
https://www.bbsmax.com/A/D854ynApdE/
https://blog.csdn.net/weixin_39703282/article/details/126345893

“Devil组”引证GPT后的撰写:
如果div A完全覆盖了div B,并且div A的scroll事件必须被触发,同时div B中的其他事件也需要被触发,可以尝试以下解决方案:

  • 通过JavaScript事件监听
    你可以通过JavaScript在div A上监听scroll事件,并在scroll事件处理程序中触发div B上的其他事件。

例如,你可以使用以下代码片段:

document.querySelector('#divA').addEventListener('scroll', function(event) {
  var divB = document.querySelector('#divB');
  var eventToTrigger = new MouseEvent('click', {
    'view': window,
    'bubbles': true,
    'cancelable': true
  });
  divB.dispatchEvent(eventToTrigger);
});


在这个代码片段中,我们通过addEventListener为div A添加了一个scroll事件监听器。在事件处理程序中,我们首先获取到了div B的元素,然后使用new MouseEvent创建了一个模拟的click事件。最后,我们通过dispatchEvent方法在div B上触发了这个模拟的click事件。

使用CSS样式

你可以尝试使用CSS样式来改变div A和div B之间的叠加关系。例如,你可以将div A的z-index设置为-1,将div B的z-index设置为1,使得div B处于div A下方,并且可以被点击。例如:

#divA {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: scroll;
  z-index: -1;
}

#divB {
  position: relative;
  z-index: 1;
}


在这个代码片段中,我们使用了position和z-index属性来控制div A和div B之间的层次关系。div A的z-index被设置为-1,使得它处于所有其他元素的下方。div B的z-index被设置为1,使得它处于所有其他元素的上方,并且可以被点击。

总之,这两种方法都可以在div A覆盖了div B的情况下,保证div A的scroll事件和div B的其他事件都可以被触发。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
可以通过Vue的事件修饰符 .native 来实现穿透上层DOM并触发底层DOM的事件。例如,在你的例子中,你可以将事件监听器绑定到底层的DOM元素B,然后使用 .native 修饰符将其绑定到上层DOM元素A的相应事件上。

下面是一个示例代码:

<div class="a" @scroll.native="onScroll">
  <div class="b" @click.native="onClick"></div>
</div>

<script>
export default {
  methods: {
    onScroll() {
      console.log('Scroll event triggered');
    },
    onClick() {
      console.log('Click event triggered');
    }
  }
}
</script>


在这个例子中,当你在DIV A上滚动时,会触发 onScroll 方法。当你在DIV B上单击时,会触发 onClick 方法。由于使用了 .native 修饰符,事件监听器被绑定到了底层的DOM元素B上,并可以穿透上层DOM元素A来触发事件。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632