当前位置: 首页 > ai >正文

记一次奇葩的错误,uniapp @tap点击失效

先说问题原因,css 中使用了卡片翻转效果,backface-visibility: hidden; 这行导致正面元素能看到,但是点击失效了。移除掉这行就好了。

异常说明

下面这段uniapp代码在微信小程序的ios环境能够正常触发tap事件,但是到了安卓没有任何反应,也没报错。

排查过程

(z-index) 首先可能是元素层级导致

很多因为这个的原因但是我遇到的不是。当时代码中元素层级很复杂,排查层级这一步废了很多时间。

事件传递原因

我的组件最外层盒子有注册@touchstart @touchmove @touchend ,有让我在内层tap加 stop 阻止事件传递。试了没效果

解决

结论就是因为使用了3d盒子,然后安卓和ios机制不一样,ios可以触发安卓无法触发。
backface-visibility: hidden;
把这行移动到背面的盒子上,解决!

css真是高深,玩不明白。

伪代码


<view class="card-swiper"><view class="card-swiper-item"><view class="card"><view class="card-box-base-sty">// fun1有效 , fun2无效 (当时排查头发扣完都没想明白!)<view @tap="fun1(item)" class="image-card-btn share-btn">按钮2</view><view @tap="fun2(item)" class="image-card-btn share-btn">按钮2</view></view><view class=" card-box-base-sty card-box-back">....省略</view></view></view>
</view>// style.card {position: relative;width: 70%;height: auto;transform-style: preserve-3d;/* 给卡片添加默认动画 */animation: 1s cubic-bezier(0.66, -0.47, 0.33, 1.5) forwards;animation-name: rotate-reverse;}.card-swiper {position: relative;z-index: 2;left: 0;top: 0;width: 100%;height: 100%;display: flex;flex-direction: row;transition: transform 0.5s ease;/* 保证删除时的平滑重排 */will-change: transform;backface-visibility: hidden;}.card-swiper-item {flex: none;width: 100%;display: flex;align-items: center;justify-content: center;perspective: 1000px;}// 卡片正面.card-box-base-sty {position: relative;width: 100%;height: 100%;overflow: hidden;border-radius: var(--border-radius);padding: 0;transition: all 0.5s ease;border: 12rpx solid var(--color);box-sizing: border-box;backface-visibility: hidden; // 注意这行 - 罪魁祸首!}// 卡片背面.card-box-back {position: absolute;top: 0;left: 0;width: 100%;height: 100%;transform: rotateY(180deg);display: flex;align-items: center;justify-content: center;z-index: 5;backface-visibility: hidden; }
http://www.xdnf.cn/news/8140.html

相关文章:

  • Nockchain项目部署教程
  • 从连接中枢到终端接入——解析工业无线AP与客户端的协同之道
  • 安装部署配置jenkins
  • Nginx 1.25.4交叉编译问题:编译器路径与aclocal.m4错误解决方案
  • wifi 如果检查失败,UI 就会出现延迟或缺失打勾的现象。
  • linux中部署jdk,开机自启动jdk以及linux中java开机自启某个jar包文件
  • 算法第26天 | 贪心算法、455.分发饼干、376. 摆动序列、 53. 最大子序和
  • 如何在Java中进行PDF合并
  • 软考 系统架构设计师系列知识点之杂项集萃(69)
  • Linux Shell编程(五)
  • 【鸿蒙开发】Hi3861学习笔记-超声波测距
  • HTB-Titanic
  • 多模态大语言模型arxiv论文略读(八十八)
  • LeetCode面试经典150题梳理
  • java I/O
  • 【补题】The 2021 ICPC Asia Nanjing Regional Contest Problem J. Xingqiu’s Joke
  • [Java][Leetcode middle] 6. Z 字形变换
  • TCP与UDP协议全面对比:从原理到应用场景深度解析
  • ROS2 camera_calibration 双目相机标定指令
  • 监控易一体化运维:网络拓扑管理,网络管理高效之道
  • 异常数据的检测
  • 【基础】Windows开发设置入门11:hyper-v虚拟机创建
  • 批处理操作优化思路
  • 使用Pyinstaller打包python,全过程解析【2025最详细】
  • 湖北理元理律师事务所:专业债务优化如何助力负债者重获生活掌控权
  • CS和BS架构
  • 《数据结构笔记一》: 指针、结构体、动态内存分配、算法时间复杂度。
  • Python绘制3D图表
  • PostgreSQL 18 升级新体验:pg_upgrade --swap 极简教程
  • BGE-M3 文本情感分类实战:预训练模型微调,导出ONNX并测试