小程序点击穿透问题解决

知识点: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 是明确指明元素会响应事件。)

相关推荐
转转技术团队1 天前
MCP 解析:给 AI 装上“万能充电口”,打通连接世界的“最后一公里”
前端
Y敲键盘的地方1 天前
第9章 工具调用循环——Agent的行动闭环
java·服务器·前端
苏瞳儿1 天前
vue3+pinia+mqtt实时响应连接
前端·javascript·vue.js
ayqy贾杰1 天前
我同事,40了,他vibe coding了个App
前端·ios·客户端
暗冰ཏོ1 天前
《2026 Vue2 + Vue3 完整学习指南:基础语法、路由缓存、登录拦截、项目实战与面试题》
前端·vue.js·vue·vue3·vue2
蜡台1 天前
VUE 侧边按钮组,可自定义位置
前端·javascript·css
AI科技星1 天前
维度原本——基于超复数谱系的全域维度统一理论
c语言·前端·javascript·网络·electron
kyriewen1 天前
14MB VS 15KB:前React核心成员用AI写了个排版库,让Safari快了一千倍
前端·javascript·react.js
幸运小圣1 天前
动态表格在 Vue 3 中的实现指南【前端】
前端·javascript·vue.js
SwJieJie1 天前
Day 3|表格表单分页范式与 vue-request 最佳实践:从配置驱动到业务落地
前端·javascript·vue.js