gpt4 book ai didi

html - CSS 过渡跳动/生涩

转载 作者:行者123 更新时间:2023-11-27 23:39:21 25 4
gpt4 key购买 nike

我一直在使用 scale() 属性,直到几周前它都运行良好。浏览器更新后,现在我看到一个不稳定/跳跃的动画,有人可以指出我的问题到底出在哪里吗?

请看下面的 jsFiddle ;在翻转中,ICON(显示“A”)将从底部滑入并同时缩放,但它会下降到起点,从而产生不平稳/跳跃的动画效果。

.ca-menu {
padding:0;
margin:20px auto;
width: 1020px;
}
.ca-menu li {
width: 200px;
height: 300px;
overflow: hidden;
position: relative;
float:left;
background: #fff;
-webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
margin-right: 4px;
-webkit-transition: all 300ms linear;
-moz-transition: all 300ms linear;
-o-transition: all 300ms linear;
-ms-transition: all 300ms linear;
transition: all 300ms linear;
}
.ca-menu li:last-child {
margin-right: 0px;
}
.ca-menu li a {
text-align: left;
width: 100%;
height: 100%;
display: block;
color: #333;
position: relative;
}
.ca-icon {
font-family:'WebSymbolsRegular', cursive;
font-size: 60px;
color: #333;
text-shadow: 0px 0px 1px #333;
line-height: 150px;
position: absolute;
width: 100%;
height: 50%;
left: 0px;
top: 0px;
text-align: center;
-webkit-transition: all 400ms linear;
-moz-transition: all 400ms linear;
-o-transition: all 400ms linear;
-ms-transition: all 400ms linear;
transition: all 400ms linear;
}
.ca-content {
position: absolute;
left: 0px;
width: 100%;
height: 50%;
top: 50%;
}
.ca-main {
font-size: 30px;
opacity: 0.8;
text-align: center;
-webkit-transition: all 200ms linear;
-moz-transition: all 200ms linear;
-o-transition: all 200ms linear;
-ms-transition: all 200ms linear;
transition: all 200ms linear;
}
.ca-sub {
text-align:center;
font-size: 14px;
color: #666;
line-height: 40px;
opacity: 0.8;
position: absolute;
bottom: 0;
width: 100%;
-webkit-transition: all 200ms linear;
-moz-transition: all 200ms linear;
-o-transition: all 200ms linear;
-ms-transition: all 200ms linear;
transition: all 200ms linear;
}
.ca-menu li:hover {
background-color: #000;
}
.ca-menu li:hover .ca-icon {
color: #ff2020;
-webkit-animation: moveFromBottom 300ms ease;
-moz-animation: moveFromBottom 300ms ease;
-ms-animation: moveFromBottom 300ms ease;
}
.ca-menu li:hover .ca-main {
color: #ff2020;
-webkit-animation: smallToBig 300ms ease;
-moz-animation: smallToBig 300ms ease;
-ms-animation: smallToBig 300ms ease;
}
.ca-menu li:hover .ca-sub {
color: #000;
background-color: #ff2020;
-webkit-animation: moveFromBottom 500ms ease;
-moz-animation: moveFromBottom 500ms ease;
-ms-animation: moveFromBottom 500ms ease;
}
@-webkit-keyframes smallToBig {
from {
-webkit-transform: scale(0.1);
}
to {
-webkit-transform: scale(1);
}
}
@-moz-keyframes smallToBig {
from {
-moz-transform: scale(0.1);
}
to {
-moz-transform: scale(1);
}
}
@-ms-keyframes smallToBig {
from {
-ms-transform: scale(0.1);
}
to {
-ms-transform: scale(1);
}
}
@-webkit-keyframes moveFromBottom {
from {
-webkit-transform: translateY(100%);
}
to {
-webkit-transform: translateY(0%);
}
}
@-moz-keyframes moveFromBottom {
from {
-moz-transform: translateY(100%);
}
to {
-moz-transform: translateY(0%);
}
}
@-ms-keyframes moveFromBottom {
from {
-ms-transform: translateY(100%);
}
to {
-ms-transform: translateY(0%);
}
}
<ul class="ca-menu">
<li>
<a href="#">
<span class="ca-icon">A</span>
<div class="ca-content">
<h2 class="ca-main">Exceptional Service</h2>
<h3 class="ca-sub">Personalized to your needs</h3>
</div>
</a>
</li>
</ul>

最佳答案

.ca-icon 中删除所有 transition 属性

Fiddle

此外,对于 @keyframes,您只需要 -moz--webkit- 前缀,-ms- @keyframes 的前缀不存在,最好也包含一个无前缀的@keyrames。尽管这不是导致问题的原因,但只是告诉过您。

关于html - CSS 过渡跳动/生涩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32344438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com