小程序点击穿透问题解决

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

相关推荐
IT_陈寒1 分钟前
Java性能调优的7个被低估的技巧:从代码到JVM全链路优化
前端·人工智能·后端
掘金安东尼26 分钟前
前端周刊第439期(2025年11月3日–11月9日)
前端·javascript·vue.js
码农刚子36 分钟前
ASP.NET Core Blazor进阶1:高级组件开发
前端·前端框架
道可到1 小时前
重新审视 JavaScript 中的异步循环
前端
起这个名字1 小时前
微前端应用通信使用和原理
前端·javascript·vue.js
QuantumLeap丶1 小时前
《uni-app跨平台开发完全指南》- 06 - 页面路由与导航
前端·vue.js·uni-app
CSharp精选营1 小时前
ASP.NET Core Blazor进阶1:高级组件开发
前端·.net core·blazor
用户90443816324601 小时前
AI 生成的 ES2024 代码 90% 有坑!3 个底层陷阱 + 避坑工具,项目 / 面试双救命
前端·面试
小p1 小时前
react学习6:受控组件
前端·react.js
黑云压城After1 小时前
纯css实现加载动画
服务器·前端·css