【发布时间】:2017-11-10 19:20:39
【问题描述】:
我正在尝试让导航栏在滚动时上下滑动。很简单。我可以得到不透明度没问题。但没有其他工作。导航栏只是出现和消失,没有动画。
我已经尝试过很多变体的SO post。需要添加 component='div' 才能使不透明度起作用。我浏览了许多动画库,却发现它们不起作用。从字面上看已经好几天了。我完全不知道接下来要尝试什么。也许它是 CSS 中的东西。
任何帮助将不胜感激。
组件:
return (
<div>
<CSSTransitionGroup component='div' transitionName="example" transitionEnterTimeout={500}transitionLeaveTimeout={300}>
{ this.state.visible ?
<div key='nav-container' className='pure-g nav-container' style={containerStyle} >
<div className='pure-u-1-24' />
<div className='pure-u-10-24 logo'>
<img style={logoStyle} src={'https://s3.amazonaws.com/philandrews/header-logo.svg'} alt='Phil Andrews Logo' />
</div>
<div className='pure-u-12-24'>
<Link style={linkStyle} to={'/blog'}>
BLOG
</Link>
<Link style={linkStyle} to={'/contact'}>
CONTACT
</Link>
<Link style={linkStyle} to={'/work'}>
WORK
</Link>
</div>
</div>
: null
}
</CSSTransitionGroup>
</div>
)
容器样式:
const containerStyle = {
position: 'fixed',
fontFamily: "'Heebo', sans-serif",
top: 0,
width: '100%',
height: '80px',
backgroundColor: 'black',
textAlign: 'center',
zIndex: 24
}
动画 CSS:
.example-enter {
height: 0px;
}
.example-enter.example-enter-active {
height: 100px;
-webkit-transition: height .3s ease;
}
.example-leave.example-leave-active {
height: 0px;
-webkit-transition: height .3s ease;
}
【问题讨论】:
标签: javascript css reactjs css-animations