过渡

133 阅读1分钟

body跟页面后默认8px的间距

过渡

1.定义

css属性允许某个或多个属性,从一个状态改变到另外一个状态的过程中,慢慢地,圆润地发生改变。可以产生一定的动画效果。
例如:将div从原本的left属性为0的状态改变到left为300的状态,中间过程可以慢慢的进行。

<style>
    .box{
        width: 500px;
        height: 200px;
        border: 1px solid #000;
        position: relative;
    }
    .box1{
        width: 100px;
        height: 100px;
        background-color: #f00;
        position: absolute;
        left: 0;
        top: 0;
        transition: left 2s ease;
    }
    .box:hover .box1{
        left: 300px;
    }
</style>
<div class="box">
    <div class="box1"></div>
</div>

效果如下: 过渡初体验.gif

2.语法

(1)单独写

a:transition-property:css属性名称;

表示要产生过渡效果的css属性,<br />
多个属性使逗号隔开<br />
如果属性过多,直接使用all来表示所有属性

b:transition-duration:数字s

表示完成过渡所需要的时长<br />
`s` 是秒 second 的表示

c:transition-timing-function:速度方式

取值:`linear` 匀速<br />
      `ease` 逐渐减速,一开始速度比较快<br />
      `ease-in` 逐渐加速<br />
      `ease-out` 逐渐减速,一开始没有`ease`快<br />
      `ease-in-out`先加速后减速<br/>
      专门用于设计速度方式的贝塞尔曲线<br />
      `steps(5)` 分步骤动画<br />

各种取值的效果展示 速度方式.gif 贝塞尔曲线网址:web.chacuo.net/css3beziert…

d:transition-delay:数字s; 表示延迟多少秒执行过渡效果

(2)复写

transition: transition-property transition-duration (transition-timing-function transition-delay);

3.注意事项

display 没有过渡效果 ,想要实现属性的隐藏和显示 可以用 透明度opaciity来替代