我制作了以下磁贴,其悬停效果会使用CSS增加font-size
- transition
:
body {
font-family: 'Segoe UI', sans-serif;
}
.website {
width: 180px;
height: 73px;
text-align: center;
line-height: 80px;
margin: 1px;
color: white;
border-bottom: 5px solid darkslateblue;
background-color: darkslateblue;
white-space: nowrap;
overflow: hidden;
transition: border-color 0.66s ease-out, font-size 0.3s ease-out;
}
.website:hover {
font-size: 16pt;
cursor: pointer;
transition: border-color 0s;
border-color: black;
}
<div class="website">Blog 1</div>
<div class="website">Blog 2</div>
<div class="website">Blog 3</div>
当您将鼠标悬停时,您可以看到font-size
的转换根本不平滑。换句话说,它在改变尺寸时会上下摆动
有没有人有一个想法如何解决或解决它?
答案 0 :(得分:15)
您可以使用CSS transform:scale
代替更顺畅的转换:
.website:hover {
cursor: pointer;
transition: border-color 0.4s;
border-color: black;
}
.website div {
transition: transform 0.3s ease-out;
}
.website:hover div {
transform: scale(1.5);
transition: transform 0s;
}
另请注意,我在div
中添加了文字,并在div
上完成了缩放,因此整个框不会缩放:)
答案 1 :(得分:3)
悬停时放redirectNative("FAIL")
因为在悬停时transition: border-color 0s, font-size 0.3s ease-out;
仅提供transition: border-color 0s
转换而不是border-color
。
font-size
&#13;
body {
font-family: 'Segoe UI', sans-serif;
}
.website {
width: 180px;
height: 73px;
text-align: center;
line-height: 80px;
margin: 1px;
color: white;
border-bottom: 5px solid darkslateblue;
background-color: darkslateblue;
white-space: nowrap;
overflow: hidden;
transition: border-color 0.66s ease-out, font-size 0.3s ease-out;
}
.website:hover {
font-size: 16pt;
cursor: pointer;
transition: border-color 0s, font-size 0.3s ease-out;
border-color: black;
}
&#13;
答案 2 :(得分:0)
最初,我使用的是 font-family: "Helvetica", sans-serif;
它像地震动画一样摇晃。 (div 中的一些测试很顺利,有些则不是。不一致和随机)。后来,我做了一些改变。
`@import url('https://fonts.googleapis.com/css2family=Poppins:wght@300&display=swap');
body {
font-family: "Poppins", sans-serif;
}`
现在,动画(尤其是字体大小动画)很流畅。 要么抖动动画是字体特定的问题。或者您要使用的字体无法在浏览器中加载。