html - 如何使用透视进行这样的悬停?
问题描述
如何使用透视进行这样的悬停?
body {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
}
*::after,
*::before {
box-sizing: border-box;
}
.wrap {
display: flex;
background-color: #10ADF4;
padding: 20px;
perspective: 600px;
}
.item {
width: 50%;
padding: 20px;
transition: 0.3s background-color, 0.3s transform;
}
.item:hover {
background-color: #fff;
transform: translateZ(40px) rotateX(30deg);
}
<div class="wrap">
<div class="item">
<h3>lorem</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis voluptate voluptas, laudantium nisi reiciendis odit, at veritatis molestiae et autem, quod vero, rerum nobis temporibus aperiam saepe minus. At, totam.</p>
</div>
<div class="item">
<h3>lorem</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis voluptate voluptas, laudantium nisi reiciendis odit, at veritatis molestiae et autem, quod vero, rerum nobis temporibus aperiam saepe minus. At, totam.</p>
</div>
</div>
解决方案
您可以更新您的代码,如下所示:
body {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
}
.wrap {
display: flex;
background-color: #10ADF4;
padding: 20px;
perspective: 600px;
}
.item {
width: 50%;
padding: 20px;
transform-origin: top;/* make the origin top */
}
.item,
.item * {
transition: 0.3s background-color, 0.3s transform;
transform: perspective(100px) rotateX(0); /* initial transform to avoid flicker */
}
.item:hover {
background-color: #fff;
transform: perspective(100px) rotateX(-5deg); /* perspective before rotation */
}
.item:hover * {
transform:perspective(100px) rotateX(5deg); /* to keep the text untouched by the transform */
}
<div class="wrap">
<div class="item">
<h3>lorem</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis voluptate voluptas, laudantium nisi reiciendis odit, at veritatis molestiae et autem, quod vero, rerum nobis temporibus aperiam saepe minus. At, totam.</p>
</div>
<div class="item">
<h3>lorem</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis voluptate voluptas, laudantium nisi reiciendis odit, at veritatis molestiae et autem, quod vero, rerum nobis temporibus aperiam saepe minus. At, totam.</p>
</div>
</div>
推荐阅读
- listview - 滚动到列表视图中的结束位置
- graphql - Apollo delegateToSchema - 如何从父解析器发送子解析器的子查询
- c++ - 为什么 PNG 图像的标准输出有时会在 printf 中刷新到图像的一半?
- r - 使 renderUI 成为 observeEvent 的输入
- pandas - 如何在 Pandas、Python 中对这些数据进行分组?
- vue.js - Vuex getter 实时更新 audio.currentTime 状态
- angular - 在 debounceTime 处于活动状态时获取所有更改
- postgresql - Postgres 会话被 PID 0 阻止(因为 .Net 核心事务?)
- asp.net - 为什么没有“IQueryable”的实现
.ToLookupAsync(x => x.Bar)' - git - 如何保护 git 中的 master 分支不被合并