举例详解CSS3中的Transition

时间:2021-05-08

1.会伸缩的搜索表单

常在 sf.gg 混的人都知道,它的顶部导航栏是这样的:

当输入框获得焦点就会变成这样的:

利用 CSS3 的 Transition 属性,我们可以简单做出一个类似的搜索表单出来:

HTML 标记:

XML/HTML Code复制内容到剪贴板
  • <header>
  • <formaction="#"method="post"class="searchForm">
  • <labelfor="search">search</label>
  • <inputtype="search"id="search"name="search"placeholder="search">
  • </form>
  • </header>
  • CSS 样式:

    CSS Code复制内容到剪贴板
  • *{
  • margin:0;
  • padding:0;
  • }
  • header{
  • font-family:helvetica,arial,sans-serif;
  • display:block;
  • overflow:hidden;
  • width:500px;
  • margin:15px;
  • border-radius:3px;
  • background-color:#ddd;
  • }
  • form.searchForm{
  • width:200px;
  • margin:5px;
  • padding:5px;
  • }
  • form.searchForminput{
  • width:90px;
  • padding:2px03px5px;
  • outline:none;
  • font-size:1.2em;
  • border-color:#eee#ccc#ccc#eee;
  • border-radius:10px;
  • -webkit-transition:0.5swidth;
  • }
  • form.searchForminput:focus{
  • width:400px;
  • }
  • form.searchFormlabel{
  • display:none;
  • }
  • 效果图:

    默认:

    获得焦点:


    对于那些可以输入的控件,大家又俗称其为 字段。每个表单控件(submit 按钮除外),都有一个对应的 label 文本元素,用于描述控件代表的数据。所以,一个搜索框就是 一个字段的表单。

    2.CSS3过渡

    示例:

    CSS Code复制内容到剪贴板
  • -webkit-transition:0.5swidth;
  • 注意:transition 属性需要使用带厂商前缀的形式——这里示例只带有Webkit(Chrome / Safari)前缀的属性。

    CSS3 过渡可以让 CSS 属性产生动画效果。平常被某些事件触发时变化很突然的样式,比如鼠标悬停时改变链接颜色,使用过渡后会在指定的时间段内逐渐变化。第一条 CSS 规则设定属性的初始状态和过渡参数。第二条 CSS 规则设定事件发生时属性的目标状态。

    通常,过渡动画是由用户鼠标悬停时的 :hover 伪类规则和表单元素获得焦点时的 :focus 伪类规则触发的。除此之外,还可以在一个带类名选择符的规则中设定新状态,然后通过 JavaScript(或其他 JS 类库)为元素添加这个类名来触发过渡,添加类名的时机可以是鼠标点击或其它事件发生时。

    有五个过渡属性:

    transition-property,过渡的 CSS 属性名,比如 color、 width;
    transition-duration,过渡的持续时间,以秒或毫秒设定,比如 2s、 500ms;
    transition-timing-function,过渡的调速函数,决定动画效果是否平滑,是先慢后快还
    是先快后慢,比如 ease-in、 ease-out、 ease-in-out 或 linear(默认值);
    transition-delay,过渡开始前的延迟时间,以秒或毫秒设定,比如 1s、 200ms;
    transition,过渡的简写属性,例如 transition:color 2s ease-in 1ms; 。

    注意::很多(并非全部)CSS 属性都可以通过 transition 属性来实现动画效果。

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章