将右 属性 设置为 -100% 使正文水平滚动
Setting the right property to -100% makes the body scroll horizontally
我使用 tailwind 制作了一个导航栏。对于移动设备,我将宽度设置为 -100%
(以便我可以应用从右到左的过渡)。问题是当我这样做时布局中断,我可以轻松地水平滚动(以及屏幕 < 650px 中的任何其他用户)。
我试过这样做:
html, body {
overflow:-moz-scrollbars-horizontal;
overflow-x:hidden;
overflow-y:scroll;
}
而且它不起作用。我在 Chrome 并希望它与所有浏览器兼容。
这是我的导航栏代码:
//toggle nav
const menu = document.querySelector('.menu');
const menuWrapper = document.querySelector('.menu-wrapper');
menu.addEventListener('click',() => {
if(menu.classList.contains('fa-bars')) {
menu.classList.remove('fa-bars')
menu.classList.add('fa-times')
menuWrapper.style.right = 0;
} else {
menu.classList.add('fa-bars')
menu.classList.remove('fa-times')
menuWrapper.style.right = "-100%";
}
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet"/>
<header>
<nav class="flex items-center py-5 shadow-md justify-between px-5 md:px-8 lg:px-10">
<div>
<img src="https://www.freeiconspng.com/thumbs/blogger-logo-icon-png/blogger-logo-icon-png-10.png" width="45px" height="45px" />
</div>
<ul class="md:flex items-center justify-between hidden">
<div class="flex items-center gap-x-10">
<li>
<a href="" class="nav-link">Trending</a>
</li>
<li>
<a href="" class="nav-link">Latest</a>
</li>
<li>
<a href="" class="nav-link">Explore</a>
</li>
</div>
</ul>
<div class="hidden md:flex gap-x-8 items-center">
<div class="flex gap-x-5 font-bold text-gray-500 items-center">
<i class="fas fa-search cursor-pointer"></i>
<div class="flex gap-x-2 items-center">
<span class="cursor-pointer hover:text-green-600 hover:underline transition">Login</span>
<span>|</span>
<span class="cursor-pointer hover:text-green-600 hover:underline transition">Sign Up</span>
</div>
</div>
<button type="button" href="" class="btn btn-primary py-2 px-6">Write</button>
</div>
<div class="flex md:hidden justify-end text-2xl cursor-pointer">
<i class="fas fa-bars menu"></i>
</div>
</nav>
<!-- visible on mobile -->
<div class="bg-white z-20 w-full h-full absolute top-14 -right-full z-50 py-20 menu-wrapper transition-all duration-500 ease-in-out menu-wrapper">
<ul class="mx-auto flex flex-col justify-center items-center">
<div class="flex gap-y-10 flex-col justify-center items-start text-gray-900">
<li class="flex gap-x-5 items-center">
<i class="fas fa-fire font-bold text-2xl"></i>
<a href="" class="nav-link text-xl">Trending Articles</a>
</li>
<li class="flex gap-x-5 items-center">
<i class="fas fa-chevron-down font-bold text-xl"></i>
<a href="" class="nav-link text-xl">Latest News</a>
</li>
<li class="flex gap-x-5 items-center">
<i class="fas fa-globe-americas font-bold text-2xl"></i>
<a href="" class="nav-link text-xl">Explore interests</a>
</li>
</div>
<div class="flex mt-20 gap-y-10 flex-col justify-center items-start text-gray-900">
<li class="flex gap-x-5 items-center">
<i class="fas fa-edit font-bold text-2xl"></i>
<a href="" class="nav-link text-xl">Write for us</a>
</li>
<li class="flex gap-x-5 items-center">
<i class="fas fa-lock font-bold text-2xl"></i>
<a href="" class="nav-link text-xl">Login</a>
</li>
</div>
</ul>
</div>
</header>
您可以 运行 代码片段并查看这些滚动条是如何出现的。即使它们是隐藏的,我也可以在我的笔记本电脑上用两根手指手动滚动它们。
我怎样才能避免这种情况?
您应该添加 right:100%
而不是 -100%
我使用 tailwind 制作了一个导航栏。对于移动设备,我将宽度设置为 -100%
(以便我可以应用从右到左的过渡)。问题是当我这样做时布局中断,我可以轻松地水平滚动(以及屏幕 < 650px 中的任何其他用户)。
我试过这样做:
html, body {
overflow:-moz-scrollbars-horizontal;
overflow-x:hidden;
overflow-y:scroll;
}
而且它不起作用。我在 Chrome 并希望它与所有浏览器兼容。
这是我的导航栏代码:
//toggle nav
const menu = document.querySelector('.menu');
const menuWrapper = document.querySelector('.menu-wrapper');
menu.addEventListener('click',() => {
if(menu.classList.contains('fa-bars')) {
menu.classList.remove('fa-bars')
menu.classList.add('fa-times')
menuWrapper.style.right = 0;
} else {
menu.classList.add('fa-bars')
menu.classList.remove('fa-times')
menuWrapper.style.right = "-100%";
}
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet"/>
<header>
<nav class="flex items-center py-5 shadow-md justify-between px-5 md:px-8 lg:px-10">
<div>
<img src="https://www.freeiconspng.com/thumbs/blogger-logo-icon-png/blogger-logo-icon-png-10.png" width="45px" height="45px" />
</div>
<ul class="md:flex items-center justify-between hidden">
<div class="flex items-center gap-x-10">
<li>
<a href="" class="nav-link">Trending</a>
</li>
<li>
<a href="" class="nav-link">Latest</a>
</li>
<li>
<a href="" class="nav-link">Explore</a>
</li>
</div>
</ul>
<div class="hidden md:flex gap-x-8 items-center">
<div class="flex gap-x-5 font-bold text-gray-500 items-center">
<i class="fas fa-search cursor-pointer"></i>
<div class="flex gap-x-2 items-center">
<span class="cursor-pointer hover:text-green-600 hover:underline transition">Login</span>
<span>|</span>
<span class="cursor-pointer hover:text-green-600 hover:underline transition">Sign Up</span>
</div>
</div>
<button type="button" href="" class="btn btn-primary py-2 px-6">Write</button>
</div>
<div class="flex md:hidden justify-end text-2xl cursor-pointer">
<i class="fas fa-bars menu"></i>
</div>
</nav>
<!-- visible on mobile -->
<div class="bg-white z-20 w-full h-full absolute top-14 -right-full z-50 py-20 menu-wrapper transition-all duration-500 ease-in-out menu-wrapper">
<ul class="mx-auto flex flex-col justify-center items-center">
<div class="flex gap-y-10 flex-col justify-center items-start text-gray-900">
<li class="flex gap-x-5 items-center">
<i class="fas fa-fire font-bold text-2xl"></i>
<a href="" class="nav-link text-xl">Trending Articles</a>
</li>
<li class="flex gap-x-5 items-center">
<i class="fas fa-chevron-down font-bold text-xl"></i>
<a href="" class="nav-link text-xl">Latest News</a>
</li>
<li class="flex gap-x-5 items-center">
<i class="fas fa-globe-americas font-bold text-2xl"></i>
<a href="" class="nav-link text-xl">Explore interests</a>
</li>
</div>
<div class="flex mt-20 gap-y-10 flex-col justify-center items-start text-gray-900">
<li class="flex gap-x-5 items-center">
<i class="fas fa-edit font-bold text-2xl"></i>
<a href="" class="nav-link text-xl">Write for us</a>
</li>
<li class="flex gap-x-5 items-center">
<i class="fas fa-lock font-bold text-2xl"></i>
<a href="" class="nav-link text-xl">Login</a>
</li>
</div>
</ul>
</div>
</header>
您可以 运行 代码片段并查看这些滚动条是如何出现的。即使它们是隐藏的,我也可以在我的笔记本电脑上用两根手指手动滚动它们。
我怎样才能避免这种情况?
您应该添加 right:100%
而不是 -100%