grommet ux 프레임 워크를 사용하는 React/redux 앱이 있습니다. 기본 구조는 다음과 설정 아이콘이 화면을 채우기 위해 <GLBoard />
구성 요소를 허용 클릭하지 않는 한 나는 <GLNav />
구성 요소를 숨길 수 싶습니다Grommet SideSplit 구성 요소 숨기기 방법
<App className="gol">
<Article>
<GLHeader />
<SideSplit active={props.nav} onResponsive={checkMobile} >
<GLNav />
<GLBoard />
</SideSplit>
<Footer colorIndex="neutral-1-a" justify="center">© 2016 </Footer>
</Article>
</App>
. 아이콘에소품을 토글하고 <GLNav />
구성 요소의 CSS 클래스를 토글하는 redux 상태 변수가 있습니다.
.hide{
width: 0 !important;
transition: width .3s ease-out;
}
.show{
transition: width .3s ease-out;
}
이 모든 크롬에서 완벽하게 작동합니다 : CSS는 그렇게에서 밖으로 NAV 구성 요소 슬라이드가 있음을 0으로 폭을 설정합니다. 그러나 Safari에서 SideSplit 구성 요소가 비 모바일 모드 (화면 폭이 750px 이상) 인 경우 - active
소품이 false이고 CSS 클래스가 .hide
인 경우에도 <GLNav />
구성 요소의 너비 값이 있습니다. 너비를 750px 미만으로 변경하면 그로멧은 hidden
클래스를 적용하고 원하는대로 <GLNav />
을 숨 깁니다.
const GLNav = props => {
return(
<SideBar colorIndex="neutral-1-a" className={props.nav}>
<Header pad="medium" justify="between">
<Title>
Settings
</Title>
<Button icon={<Close />} onClick={() => props.actions.toggleNav()} />
</Header>
</SideBar>
)
}
참고 : 설정 버튼을 클릭 할 때 예상대로, 그것은 '아무튼 작동하는 동안 나는 또한 단지 ...은''구성 요소를 렌더링 시도 이 경우 CSS 전환을 적용하십시오. –
genestd
'max-width : 0;' –
이 추가되었습니다. 팁을 주셔서 감사합니다! – genestd