简单的搜索框变长动画

2,848 阅读1分钟

看到不少网站的搜索框聚焦后都会展开(单边横向变长),一直很好奇是怎么写的,偶然间看到阮老师的 CSS动画简介

发现原理并不难,下面实现一个简单的 CSS 搜索框动画。

开始!

定义一个搜索框。

<input type="text" placeholder="搜一下"/>

指定搜索框的宽度。

input{
    width: 100px;
}

我们可以把接下来的动画拆分成两个步骤:1. 瞬间变长,2. 有过渡地变长。

指定在聚焦(即鼠标点击搜索框时)时搜索框瞬间变成 200px。

input:focus{
    width: 200px;
}

我们想让这个搜索框动态变长,要用到一个属性 Transition(过渡),s 表示秒。

input:focus{
    width: 200px;
    transition: 1s;
}

还可以用 ease-in:先慢后快,ease-out:先快后慢,来调整流畅性。

input:focus{
    width: 200px;
    transition: 1s ease-in;
}

在默认状态中加入 transition,作为失焦后的动画。

input{
    width: 100px;
    transition: 1s ease-in;
}

end