CSS--过渡

96 阅读1分钟

transition-property

transition-property: width; // 指定参与过度的属性

transition-duration

transition-duration:2s; // 指定过渡时间,不包括延迟时间

transition-timing-function

transition-timing-function: ease, ease-in; // 指定过渡曲线

步进动画

transition-timing-function: ease, steps(3,start); // 过渡动画分三块,展示开始帧
transition-timing-function: ease, steps(3,end);   // 过渡动画分三块,展示结束帧

简写

transition-timing-function: ease, steps(1,start); // steps(1,start) 简写 step-start
transition-timing-function: ease, steps(1,end);   // steps(1,end) 简写 step-end

transition-delay

transition-delay: 1s; // 过渡延迟1s执行,延迟时间不会算在过渡时间中

组合简写

transtition:all linear 2s 1s; // 第一个时间是过渡时间,第二个时间是延迟时间

最小粒度

过渡属性都是可以被单独设置的

transition-property: width, background-color, height;
transition-duration: 3s, 3s;
transition-timing-function: ease, ease-in;
transition-delay: 1s, 2s, 0s;
// 当属性个数大于设置时个数,会循环对应的设置

事件监听

transitioncancel

过渡被中断,包括在ransition-delay延迟期间。回调函数被执行3次

document.getElementById("d").addEventListener("transitioncancel", () => {
            console.log("transitioncancel")
        })

transitionend

过渡完成。回调函数被执行3次

document.getElementById("d").addEventListener("transitionend", () => {
            console.log("transitionend")
        })

transitionrun

过渡开始,在transition-delay执行。回调函数被执行3次

document.getElementById("d").addEventListener("transitionrun", () => {
            console.log("transitionrun")
        })

transitionstart

过渡开始,在transition-delay执行。回调函数被执行3次

document.getElementById("d").addEventListener("transitionstart", () => {
            console.log("transitionstart")
        })

多状态

从A状态过渡到B状态,会使用B状态设置的过渡