变换:翻译动画不起作用
Transform: Translate Animation not working
我想实现 "blind effect",点击按钮会导致叠加层 div 动画化,因此只有一小部分显示在屏幕顶部,它会显示 div 下面。
我正在使用 gatsby,以及 React spring 和样式化组件。我已经将 "blind" 设置为一个组件,如下所示:-
const HeroWrapper = styled(animated.div)`
background-color: blue;
height: 100vh;
width: 100vw;
text-align: center;
position: fixed;
display: flex;
justify-content: space-between;
align-items: center;
flex-direction: column;
z-index: 15;
`
const HeroTitle = styled.h1`
margin: auto;
color: whitesmoke;
`
const Hero = () => {
const [isHeroOpen, setHeroOpen] = useState(true)
const heroAnimation = useSpring({
transform: isHeroOpen ? `translate3d(0,0,0)` : `translate3d(0, -85%, 0)`,
})
return (
<HeroWrapper style={heroAnimation} onClick={() => setHeroOpen(!isHeroOpen)}>
<HeroTitle>I am a Hero Blind</HeroTitle>
<div style={{ paddingBottom: '40px' }}>
<button type="button" onClick={() => setHeroOpen(!isHeroOpen)}>
Click
</button>
</div>
</HeroWrapper>
)
}
但是动画不适用于 transform:translate。
如果我用背景颜色的动画替换它...
backgroundColor: isHeroOpen ? `#66666666` : `green`,
...它工作正常所以一切都在使用状态切换。
此外,如果我在开发人员工具中修改 transform:translate 它也可以工作 - 那么我做错了什么?
非常感谢
这是一个艰难的过程。显然,您还必须在第一个翻译中包含百分号,react-spring 才能正确插入它。
const heroAnimation = useSpring({
transform: isHeroOpen ? `translate3d(0,0%,0)` : `translate3d(0,-85%,0)`
});
我想实现 "blind effect",点击按钮会导致叠加层 div 动画化,因此只有一小部分显示在屏幕顶部,它会显示 div 下面。
我正在使用 gatsby,以及 React spring 和样式化组件。我已经将 "blind" 设置为一个组件,如下所示:-
const HeroWrapper = styled(animated.div)`
background-color: blue;
height: 100vh;
width: 100vw;
text-align: center;
position: fixed;
display: flex;
justify-content: space-between;
align-items: center;
flex-direction: column;
z-index: 15;
`
const HeroTitle = styled.h1`
margin: auto;
color: whitesmoke;
`
const Hero = () => {
const [isHeroOpen, setHeroOpen] = useState(true)
const heroAnimation = useSpring({
transform: isHeroOpen ? `translate3d(0,0,0)` : `translate3d(0, -85%, 0)`,
})
return (
<HeroWrapper style={heroAnimation} onClick={() => setHeroOpen(!isHeroOpen)}>
<HeroTitle>I am a Hero Blind</HeroTitle>
<div style={{ paddingBottom: '40px' }}>
<button type="button" onClick={() => setHeroOpen(!isHeroOpen)}>
Click
</button>
</div>
</HeroWrapper>
)
}
但是动画不适用于 transform:translate。 如果我用背景颜色的动画替换它...
backgroundColor: isHeroOpen ? `#66666666` : `green`,
...它工作正常所以一切都在使用状态切换。
此外,如果我在开发人员工具中修改 transform:translate 它也可以工作 - 那么我做错了什么?
非常感谢
这是一个艰难的过程。显然,您还必须在第一个翻译中包含百分号,react-spring 才能正确插入它。
const heroAnimation = useSpring({
transform: isHeroOpen ? `translate3d(0,0%,0)` : `translate3d(0,-85%,0)`
});