每次触发上述元素动画时,如何保持 HTML/CSS 元素固定而不是 jutter/adjust?
How to keep HTML/CSS element fixed and not jutter/adjust everytime the above element animation is triggered?
这是一个挑剔的设计,但我基本上在下面的联系按钮上方有这个元素,这使得列表元素有点弹出(使用转换和其他我拼凑的基本 CSS 动画知识),但现在每次触发上面的动画时stutters/jumps下面的按钮。
我在这个特定的练习中使用零 JavaScript(只是 HTML/CSS),我想保持这种状态,但如果使用 JavaScript 是一个快速和小的修复- 那么确定为什么不。
问题中的 HTML 部分:
<div>
<ul class="projectlist">
<li class="slidein">🎮 The Game</li>
<li class="slidein">🔨 The Toolbox</li>
<li class="slidein">📚 The Resource</li>
<li class="slidein">More projects...</li>
</ul>
</div>
<div class="divbutton">
<h2><a href="default.asp" target="_blank">Contact</a></h2>
</div>
与 SlideIn 转换相关的 CSS:
.slidein:hover {
animation-duration: 0.2s;
animation-name: slidein;
animation-iteration-count: 1;
animation-direction: normal;
}
@keyframes slidein {
from {
font-size: 19px;
translate(0,0);
}
to {
font-size:20px;
translate(10,0);
}
}
CSS 与联系按钮相关,如果您需要,可获取更多信息:
.divbutton {
text-align: center;
position: relative;
}
a {
text-align: center;
border-radius: 35px;
border: 2px solid #73AD21;
width: 150px;
height: 60px;
display: inline-block;
text-decoration: none;
color: black;
padding: -20px;
}
a:hover, a:active {
background-color: #59b515;
color: white;
}
.projectlist {
text-align: center;
font-family: 'NowRegular';
font-size: 19px;
list-style: none;
margin-right: 25px;
}
如果您需要,这里还有一个问题的视频:Youtube
就像联系人按钮在底部跳到那里的方式。
我已经尝试过一些简单的东西,比如固定位置、绝对等等,但都没有用。
会发生这种情况,因为动画会更改链接的行高。
这应该可以解决问题:
.slidein {
line-height: 24px;
}
编辑:
动画应该在 class 上配置,没有 ":hover",否则动画只会在鼠标在元素上时触发。当鼠标离开元素时,动画并没有结束,而是跳转到默认状态。
不需要关键帧动画。你可以在“:hover”选择器上定义更大的字体。
这是一个挑剔的设计,但我基本上在下面的联系按钮上方有这个元素,这使得列表元素有点弹出(使用转换和其他我拼凑的基本 CSS 动画知识),但现在每次触发上面的动画时stutters/jumps下面的按钮。
我在这个特定的练习中使用零 JavaScript(只是 HTML/CSS),我想保持这种状态,但如果使用 JavaScript 是一个快速和小的修复- 那么确定为什么不。
问题中的 HTML 部分:
<div>
<ul class="projectlist">
<li class="slidein">🎮 The Game</li>
<li class="slidein">🔨 The Toolbox</li>
<li class="slidein">📚 The Resource</li>
<li class="slidein">More projects...</li>
</ul>
</div>
<div class="divbutton">
<h2><a href="default.asp" target="_blank">Contact</a></h2>
</div>
与 SlideIn 转换相关的 CSS:
.slidein:hover {
animation-duration: 0.2s;
animation-name: slidein;
animation-iteration-count: 1;
animation-direction: normal;
}
@keyframes slidein {
from {
font-size: 19px;
translate(0,0);
}
to {
font-size:20px;
translate(10,0);
}
}
CSS 与联系按钮相关,如果您需要,可获取更多信息:
.divbutton {
text-align: center;
position: relative;
}
a {
text-align: center;
border-radius: 35px;
border: 2px solid #73AD21;
width: 150px;
height: 60px;
display: inline-block;
text-decoration: none;
color: black;
padding: -20px;
}
a:hover, a:active {
background-color: #59b515;
color: white;
}
.projectlist {
text-align: center;
font-family: 'NowRegular';
font-size: 19px;
list-style: none;
margin-right: 25px;
}
如果您需要,这里还有一个问题的视频:Youtube
就像联系人按钮在底部跳到那里的方式。
我已经尝试过一些简单的东西,比如固定位置、绝对等等,但都没有用。
会发生这种情况,因为动画会更改链接的行高。
这应该可以解决问题:
.slidein {
line-height: 24px;
}
编辑: 动画应该在 class 上配置,没有 ":hover",否则动画只会在鼠标在元素上时触发。当鼠标离开元素时,动画并没有结束,而是跳转到默认状态。 不需要关键帧动画。你可以在“:hover”选择器上定义更大的字体。