提问者:小点点

如何在状态变化之间添加渐变过渡


我有一个组件,每次我改变状态的值时,我希望它在不同颜色之间褪色,而不是直接改变,我怎么做呢?

const Header = (props) => {
    const [headerColor, setHeaderColor] = useState('#c8e9e6');

    useEffect(() => {
        document.addEventListener("scroll", () => {
            console.log(window.scrollY);
            if (window.scrollY < 700) {
                setHeaderColor('#c8e9e6');
               
            } else if (window.scrollY >= 700 && window.scrollY < 1500) {
       
                setHeaderColor('#ffae5a');
            } else if (window.scrollY >= 500) {
                setHeaderColor('#b48fff');
            }
        });
    });
    return (
        <div className={classes.HeaderContainer} style={{
            backgroundColor: headerColor,
        }```);
}

共1个答案

匿名用户

您可能只需使用属性transition&;-WebKit-Transition

例如,2秒后将颜色设置为橙色:

.transaition{
    background-color: #ffae5a;
    -webkit-transition: background-color 2s; /* For Safari 3.1 to 6.0 */
    transition: background-color 2s;
}