小程序点击穿透问题解决

知识点: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 小时前
5. 从零开始搭建一个 AI Agent —— 人机协作与中断恢复
前端·人工智能·架构
品尚公益团队2 小时前
C#在asp.net网页开发中的带cookie登录实现
前端·c#·asp.net
小羊Yveesss2 小时前
2026年如何自己搭建一个外贸网页?单页验证和完整网站的区别
微信小程序·小程序·开源
没有了遇见2 小时前
AI Agent 是什么?—— 一文理解 LLM、Memory、Skills、Tools、MCP、Workflow,Context
android·前端·程序员
后台开发者Ethan3 小时前
setState组件更新
前端·javascript·react
谙忆10243 小时前
大文件上传实战:前端分片、断点续传、秒传与并发控制怎么落地
前端
轻动琴弦3 小时前
VoltTool —— 一站式在线开发者工具平台,69+实用工具免费使用
前端·chrome
就叫飞六吧3 小时前
不同站点iframe嵌套种cookie、localstorege.set() 关系
前端
星栈3 小时前
LiveView 怎么测:从组件测试到端到端,我终于不再只敢手点页面了
前端·前端框架·elixir
蜡台4 小时前
uniapp vue2 转 vue3
前端·javascript·uni-app·vue3·vue2