我有一些代码可以在悬停时为按钮设置动画,但是当我重新加载我的页面时,css会应用我在按钮和按钮文本上设置的1s过渡。
我将过渡设置为仅适用于按钮的宽度,这是有效的,但如果我想动画多个事情,我必须选择只动画那些,这有点烦人看到,因为我以前没有遇到过这个问题。
我在Chromebook上使用Chrome 72.0.3626.122
html {
width: 100%;
height: 100%;
}
body,
span {
margin: 0;
padding: 0;
}
.button {
width: 120px;
height: 40px;
border: none;
background-color: salmon;
transition: 1s ease;
}
.button:hover {
width: 200px;
}
.button-text {
color: white;
font-size: 17px;
transition: 1s ease;
}
.button:hover .button-text {
color: lightgray;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Button hover</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<button class="button">
<span class="button-text">Hover me</span>
</button>
</body>
</html>
这会在页面重新加载后的1秒内应用所有css,而不是立即加载所有css并在悬停时转换
这会在页面重新加载后的1秒内应用所有css,而不是立即加载所有css并在悬停时转换
因此,您希望按钮在页面加载后1秒钟自动变宽并自动变暗,对吗?
CSS动画应该在这里帮助你,因为它们是自我调用的,而CSS转换需要一个触发事件。
// Call the keyframes
.button { animation: expand 0.55s linear 2s 1 normal forwards running; }
.button-text { animation: color-shift 0.55s linear 2s 1 normal forwards running; }
// Keyframes
@keyframes expand {
0% { width: 120px; }
100% { width: 200px; }
}
@keyframes color-shift {
0% { color: white; }
100% { color: lightgray; }
}
我已经使用你的HTML和CSS来显示差异in this CodePen,以及一些额外的细节。希望有所帮助。