自学内容网 自学内容网

【bug记录9】transform 3D变化的时候,背面按钮翻转到正面的时候无法点击/选中

一、问题背景

制作卡片翻转特效的时候,原dom结构如下

<div class="container">
    <div class="front" >带按钮的正面,初始在背面,transform:rotateY(180deg)</div>
    <div class="back" >无按钮的背面,初始在正面,transform:rotateY(0deg)</div>
</div>

现在container上设置翻转动画,使得原来在背面的正面图翻转到正面

.front,.back{
  backface-visibility:hidden;
}

.container{
  //....
  backface-visibility:hidden;
  transform-style:preserve-3d;
  animation: flip 1s linear 0.5s both;
}

//翻转动画
@keyframes flip {
  0% {
    transform: rotateY(0deg);
  }
  100% {
    transform: rotateY(180deg);
  }
}

结果翻转过来的按钮面无法选中/点击

二、问题原因

在3d效果中,背面的元素翻转过来只是在gpu渲染层面上体现,但实际无法选中,因为其在Z轴上的层级已经被改变。

三、问题解决

1、backface-visibility:visible可以让背面元素可视可选,但不符合预期动画效果

2、让front一开始就作为正面transform:rotateY(0deg),而父元素初始设为transform:rotateY(180deg)。

3、在按钮位置上设置一个透明、层级高的普通元素绑定点击事件,但不好控制位置和出现时机。


原文地址:https://blog.csdn.net/weixin_57208584/article/details/142381164

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!