官方文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/pointer-events
pointer-events: auto; 与pointer-events属性未指定时的表现效果相同,对于 SVG 内容,该值与visiblePainted效果相同
pointer-events: none; 元素永远不会成为鼠标事件的target。但是,当其后代元素的pointer-events属性指定其他值时,鼠标事件可以指向后代元素,在这种情况下,鼠标事件将在捕获或冒泡阶段触发父元素的事件侦听器。
下面这个例子是不会触发onTap事件的
<template>
<view>
<view class="a"></view>
<view class="b" @tap="onTap"></view>
</view>
</template>
<script>
export default {
methods: {
onTap() {
console.log("点击了b");
}
}
}
</script>
<style lang="scss" scoped>
.a {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 100vh;
z-index: 10;
}
.b {
width: 100px;
height: 100px;
background-color: aqua;
}
</style>
下面这个例子会触发onTap事件的,在a的样式加上pointer-events: none;,b的样式加上pointer-events: auto;其他不变
<template>
<view>
<view class="a"></view>
<view class="b" @tap="onTap"></view>
</view>
</template>
<script>
export default {
methods: {
onTap() {
console.log("点击了b");
}
}
}
</script>
<style lang="scss" scoped>
.a {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 100vh;
z-index: 10;
pointer-events: none;
}
.b {
width: 100px;
height: 100px;
background-color: aqua;
pointer-events: auto;
}
</style>
↓↓↓ 各位大佬点点赞
0 个评论
要回复文章请先登录或注册