不久前,我看到一个按钮在 width 属性上使用了三次贝塞尔过渡。我真的很喜欢它的外观,以及重新创建它是多么简单。
这是我制作的一个简单版本:https ://codepen.io/Xemros/pen/oNNKjLm
<div class="container">
<button>Hover me !</button>
</div>
button {
outline:none;
background-color: #ABCDFE;
height: 70px;
width: 200px;
border-radius: 2em;
border:0px;
color:white;
font-weight:800;
font-size:18px;
transition: width .5s cubic-bezier(0.68, -0.55, 0.265, 1.55),box-shadow .4s;
box-shadow: 0px 4px 15px -4px rgba(0,0,0,0.35);
}
button:hover {
width:250px;
}
这对我来说已经很有效了,但我想更进一步。我想在我的三次贝塞尔过渡中添加更多点以创建“稳定”效果,因此最后的弹性感觉更加自然。但是 css 函数只需要 4 个参数,它们是两个点的坐标。像这样:三次贝塞尔曲线(x1,y1,x2,y2)。
这是我用来测试参数的工具:https ://cubic-bezier.com/#.68,-0.55,.26,1.55
这是一个绘制得很差的图表来说明我希望我的过渡如何表现:https ://i.stack.imgur.com/vKD6I.png
有谁知道在 CSS 或 JS/Jquery 中实现这一目标的简单方法?如果没有简单的方法,那么创建过渡的最有效方法是什么?