html - 过渡影响背景图像
问题描述
当我将鼠标悬停在 div 上时,背景图像也会移动。如果我删除这条线
transition:transform 0.2s;
,则背景图像不会朝正确的方向移动。为什么会这样?我已在此处附加了 codepen 链接:
https ://codepen.io/SowmiyaPachiappan/pen/RwbpjvN
请帮我。如何解决?
section {
padding: 10rem 0;
background-image: linear-gradient(to right bottom, rgba(126, 213, 111, 0.8), rgba(40, 180, 133, 0.8)), url(https://i.ytimg.com/vi/eQBu3UBQby0/maxresdefault.jpg);
background-size: cover;
-webkit-transform: skewY(-6deg);
transform: skewY(-6deg);
color: #777;
}
section>* {
-webkit-transform: skewY(6deg);
transform: skewY(6deg);
}
.row {
max-width: 1140px;
}
row:not(:last-child) {
margin-right: 60px;
}
.col-1-of-4 {
width: calc(100% / 4);
}
.feature-box {
background-color: rgba(255, 255, 255, 0.6);
padding: 10px;
border-radius: 3px;
transition: -webkit-transform 0.2s;
transition: transform 0.2s;
transition: transform 0.2s, -webkit-transform 0.2s;
}
.feature-box:hover {
-webkit-transform: translateY(-15px);
transform: translateY(-15px);
}
<section>
<div class="row">
<div class="col-1-of-4">
<div class="feature-box">
<h3 class="heading-tertiary u-margin-bottom-small">Explore the world</h3>
<p class="feature-box__text">
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ducimus optio laborum
</p>
<div>
</div>
</div>
</section>
解决方案
我在浏览器中看不到问题,但也许这会有所帮助。
我通过引入一个专用的div.background
.
section {
padding: 10rem 0;
color: #777;
position: relative;
}
section>.background,
section>.background:after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
}
section>.background {
-webkit-transform: skewY(-6deg);
transform: skewY(-6deg);
overflow: hidden;
}
section>.background:after {
content: '';
background-image: linear-gradient(to right bottom, rgba(126, 213, 111, 0.8), rgba(40, 180, 133, 0.8)), url(https://i.ytimg.com/vi/eQBu3UBQby0/maxresdefault.jpg);
background-size: cover;
-webkit-transform: skewY(6deg);
transform: skewY(6deg);
}
.row {
max-width: 1140px;
}
row:not(:last-child) {
margin-right: 60px;
}
.col-1-of-4 {
width: calc(100% / 4);
}
.feature-box {
background-color: rgba(255, 255, 255, 0.6);
padding: 10px;
border-radius: 3px;
transition: -webkit-transform 0.2s, transform 0.2s;
transform: translate3d(0,0,0);
-webkit-transform: translate3d(0,0,0);
}
.feature-box:hover {
-webkit-transform: translateY(-15px);
transform: translateY(-15px);
}
<section>
<div class="background"></div>
<div class="row">
<div class="col-1-of-4">
<div class="feature-box">
<h3 class="heading-tertiary u-margin-bottom-small">Explore the world</h3>
<p class="feature-box__text">
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ducimus optio laborum
</p>
</div>
</div>
</div>
</section>
推荐阅读
- node.js - module.js:549 抛出错误;错误:找不到模块“C:\Y_ntt\Try-Angular-v4-master\dist\server.js”
- android-studio - 如何清除以下代码的错误?
- php - PHP从api按天排序课程
- matlab - Matlab,单元格的逗号分隔字符串,当它有空白时,例如 1,2,3,[blank],[blank]
- reactjs - 模态大约需要 30 秒才能打开
- python - python如何从数字创建一个长度为4个字符的字符串
- hyperledger-fabric - Hyperledger Fabric:从文档修改示例应用程序时出错
- python-2.7 - 用 sage 编译会出现“SystemError: new style getargs format but argument is not a tuple”
- php - 在数组中添加缺少的月份
- unity3d - 立即从 3D 管道访问 2D 框的 Unity 功能?