Heim > Fragen und Antworten > Hauptteil
Text-CSS
body { .lock & { overflow: hidden; touch-action: none; overscroll-behavior: none; } .loaded & { } }
Wenn ich auf das Symbol klicke, fügt der Code die HTML-Klasse „lock“ hinzu
const burgerClick = (e:React.MouseEvent<HTMLDivElement>) => { if (widthWindow && widthWindow < 991.98) { dispatch(changeStateMenuBurgerHeader(!stateMenuBurgerHeader)) document.documentElement.classList.toggle('lock'); } }
Ich habe eine Komponente für ein Hamburger-Menü. Ich möchte scrollen, während das Menü aktiv ist.
Ich klicke auf das Symbol und dann wird das Hamburger-Menü aktiv und ich füge dem Textkörper die Klasse „Sperren“ hinzu.
return ( <div className= {!stateMenuBurgerHeader ? "header__burger" : "header__burger menu-open" }> <MyButton className = "header__btn-burger icon-menu" type = "button" > <span></span> </MyButton> <nav className="header__nav nav-header"> <ul className="header__list nav-header__list"> {widthWindow && widthWindow >= 950 ? burgerMenu.map((item) => <LinkBurger burgerMenuList = {item} key = {item.text} className = {item.icon} />) : burgerMenuSecond.map((item) => <LinkBurger burgerMenuList = {item} key = {item.text} className = {item.icon} />) } </ul> </nav> </div> );
Komponententitelmenü
<div className="header__cover-lines"> <div className = "header__cover-left-block" onMouseEnter={burgerMouseEnter} onMouseLeave={burgerMouseLeave} onClick = {burgerClick} > <BurgerMenu/> <div className="header__menu-block">CinemaGO</div> </div>
CSS für Hamburger-Menü. Aber ich kann nicht scrollen, wenn mene aktiv ist, und ich verstehe nicht, warum Ich habe versucht, den Überlauf auszublenden und zu scrollen.
.nav-header{ background-color: rgba(21, 21, 21, 0.96); z-index: 4; @media (min-width: $tablet) { padding-bottom: rem(10); padding-top: rem(100); border-radius: rem(10); min-width: rem(400); margin-left: -10px; position: absolute; top: 0; left: 0; transform: translate(0px,-30px); } @media (max-width: $tablet) { position: fixed; top: 0; left: 0; min-width: 100%; min-height: 100%; padding-top: rem(80); transform:translate(-120%,0%); transition: transform ease 1s 0s; overflow: scroll; .menu-open & { transform:translate(0%,0%); transition: transform ease 1s 0s; } }
P粉7868001742023-09-10 09:37:40
在我写了 height 而不是 min-height 之后它就可以工作了
更改前的代码
@media (max-width: $tablet) { position: fixed; top: 0; left: 0; min-width: 100%; **min-height: 100%;** padding-top: rem(80); transform:translate(-120%,0%); transition: transform ease 1s 0s; overflow: scroll; .menu-open & { transform:translate(0%,0%); transition: transform ease 1s 0s; } }
新代码
@media (max-width: $tablet) { position: fixed; top: 0; left: 0; min-width: 100%; **height: 100%;** padding-top: rem(80); transform:translate(-120%,0%); transition: transform ease 1s 0s; overflow: scroll; .menu-open & { transform:translate(0%,0%); transition: transform ease 1s 0s; } }