【发布时间】:2020-06-13 22:16:54
【问题描述】:
我正在尝试为按钮创建悬停动画。在鼠标悬停时,应该有从左到下到右到上的边框过渡。基本完成按钮结构即矩形。
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: white;
position: relative;
animation: mymove 800ms ;
transition: all ease-in-out;
}
@keyframes mymove {
0%{
border-left: 1px solid;
}
25%
{
border-left: 1px solid;
border-bottom: 1px solid;
}
50%
{
border-left: 1px solid;
border-bottom: 1px solid;
border-right: 1px solid;
}
100%
{
border-left: 1px solid;
border-bottom: 1px solid;
border-right: 1px solid;
border-top: 1px solid;
}
}
</style>
</head>
<body>
<h1>The @keyframes Rule</h1>
<p><strong>Note:</strong> The @keyframes rule is not supported in Internet Explorer 9 and earlier versions.</p>
<div></div>
</body>
</html>
https://jsfiddle.net/ymbspr63/
现在,如果您看到它看起来很糟糕并且没有平滑度。我也使用了转换属性,但这并没有解决问题。我在这里错过了什么?
我希望每个人都能理解我想要实现的目标。 :)
【问题讨论】:
-
您可以从以下方面启发自己:codepen.io/gc-nomade/pen/HcDFk、codepen.io/gc-nomade/pen/pKwby 或codepen.io/gc-nomade/pen/kpHGv,所有这些都基于渐变、关键帧、背景大小,即使是几年前它仍然有效。今天你也很好地支持了 SVG
-
@TemaniAfif 我看到了这个帖子。这几乎是我正在寻找的。虽然它使用不同的方法,即背景属性。我喜欢你给出的解释。对此感激不尽。我试图更清楚地理解它。另外,我自己尝试了一些东西并实现了这一点 - [link]jsfiddle.net/x3hkuyj5
-
@G-Cyrillus 感谢您链接一些示例。这绝对有帮助。我会尝试通过代码并理解它。
-
@TemaniAfif 我认为我想要实现的目标不会发生在边框属性上。由于边框本身就是一条完整的线,并且没有起点和终点。它会显示为一整行。哎呀!如果我错了,请纠正我。 PS - 我认为你的方法似乎适合我。
标签: css