我有一个组件,每次我改变状态的值时,我希望它在不同颜色之间褪色,而不是直接改变,我怎么做呢?
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,
}```);
}
您可能只需使用属性transition
&;-WebKit-Transition
例如,2秒后将颜色设置为橙色:
.transaition{
background-color: #ffae5a;
-webkit-transition: background-color 2s; /* For Safari 3.1 to 6.0 */
transition: background-color 2s;
}