小程序点击穿透问题解决

知识点:pointer-events 属性在移动端开发中经常用于处理事件的穿透和响应控制。

下面是对应的场景: 使用Tora开发小程序,在地图上面写多个小图标,图标位于地图两侧并且都可以点击。要求点击图标时不触发地图的点击事件。

如图:

相关代码如下,会有一些放大、缩小、刷新定位等效果:

如果使用TaroMap组件开发地图,什么都不处理的情况下,点击小图标时,地图也会被触发点击事件。这不是我们的预期结果。

我们的预期结果是:点击小图标,只是响应图标事件,比如弹出提示或跳转页面。

解决方法:

css 复制代码
  // 设置鼠标进去元素内部区域时,事件响应
  pointer-events: visible;

如果点击图标时,需要地图的事件被响应,则: 将一个地图上层的元素设置为 pointer-events: none; ,实现点击透传的效果。

css 复制代码
  // 设置事件不响应,穿透到下层,使下层的地图响应事件触发
  pointer-events: none;

而将元素设置为 pointer-events: auto; 或者 pointer-events: visible;,则可以让元素恢复正常的鼠标事件响应。

总结: 响应本层事件:pointer-events: auto; 和 pointer-events: visible; 都表示元素会响应鼠标事件。 (区别在于 auto 是默认值,而 visible 是明确指明元素会响应事件。)

相关推荐
小文刀696几秒前
2025-35st-w-日常开发总结
前端
我是日安3 分钟前
从零到一打造 Vue3 响应式系统 Day 8 - Effect:深入剖析嵌套 effect
前端·vue.js
小lan猫7 分钟前
React学习笔记(一)
前端·react.js
晨米酱7 分钟前
JavaScript 中"对象即函数"设计模式
前端·设计模式
拜无忧8 分钟前
【教程】Nuxt v4 入门指南与实践 (vue前端角度开发)
前端·nuxt.js
云枫晖11 分钟前
手写Promise-什么是Promise
前端·javascript
拜无忧11 分钟前
html,svg,花海扩散效果
前端·css·svg
DevUI团队12 分钟前
🚀 MateChat V1.8.0 震撼发布!对话卡片可视化升级,对话体验全面进化~
前端·vue.js·人工智能
RoyLin13 分钟前
TypeScript设计模式:责任链模式
前端·后端·typescript
一枚前端小能手13 分钟前
📋 前端复制那点事 - 5个实用技巧让你的复制功能更完美
前端·javascript