css transform 翻页动画记录的实现
程序员文章站
2022-03-26 10:13:33
翻页问题场景b和c是同一页(正反两面)当想要翻页覆盖 a 时,b、c 需要同时翻页才能覆盖a,显示d。b、c 不能写在同一个盒子里错误例子:
翻页问题场景
b和c是同一页(正反两面)
当想要翻页覆盖 a 时,b、c 需要同时翻页才能覆盖a,显示d。
b、c 不能写在同一个盒子里
错误例子:
<div class="pagesbox a"></div> <div class="pagesbox"> <div class="b"></div> <div class="c"></div> </div> <div class="pagesbox d"></div>
正确例子:
<main> <div class="pagesbox a"></div> <div class="pagesbox b"></div> <div class="pagesbox c"> <div>内容</div> </div> <div class="pagesbox d"></div> </main>
为什么不使用一个盒子包裹 b、c,使他们翻转就可以了?
答案在下面。
b 需要设置
.b{ backface-visibility: hidden; }
backface-visibility: hidden; 这个属性是让b的 背面 隐藏。
并且让 b、c 重叠,使用绝对定位进行重叠。
c 需要设置
.c > div{ transform: rotatey(-180deg); }
因为正常内容是显示正面的,我们需要把 c 的内容翻转到背面。让它看起来像是 纸张 的 背面
回到上面的问题,为什么不使用一个盒子
因为包裹 b、c 的盒子进行翻转时,b 设置背面隐藏是无效的。只有让 b 进行翻转,才能让 b 的背面隐藏起来。显示背面的 c。
接着对b、c进行动画翻页。
main{ perspective: 1800; transform-style: preserve-3d; } .b,.c{ transition: transform 1s; &.on{ transform: rotatey(180deg); } }
到此这篇关于css transform 翻页动画记录的实现的文章就介绍到这了,更多相关css翻页动画内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
上一篇: TextInputLayout的基本使用
下一篇: 盛夏去游玩 草原寻清凉