Navigation Bar侧边滑入过渡失效,请求排查问题原因
实现侧边滑入式导航栏
当前点击导航切换按钮后,导航菜单从顶部出现且无过渡效果,需调整为从屏幕侧边滑入的过渡效果,以下是具体修改方案:
一、修改CSS样式
核心是用transform替代display控制导航菜单的显示隐藏(display无法添加过渡动画),同时设置固定定位让菜单处于侧边:
/* 保留原有CSS代码,仅修改@media(max-width:600px)内的内容 */ @media only screen and (max-width : 600px){ .navbar{ display: flex; flex-direction: column; width: 100vw; font-size: 20px; position: relative; } /* 导航菜单默认状态:移出屏幕右侧,添加过渡动画 */ .main_nav{ position: fixed; top: 0; right: 0; height: 100vh; width: 70%; /* 可按需调整菜单宽度 */ background-color: white; flex-direction: column; justify-content: flex-start; padding-top: 80px; /* 避开顶部logo区域 */ list-style: none; margin: 0; transform: translateX(100%); transition: transform 0.3s ease-in-out; } /* 显示导航菜单:滑入屏幕 */ .show_nav{ transform: translateX(0); } .main_nav li{ width: 100%; height: 50px; font-size: 25px; padding-left: 20px; /* 避免文字贴边 */ line-height: 50px; /* 垂直居中文字 */ } .nav-btn { margin-right: 5%; font-size: 30px; color: #333; /* 调整按钮颜色,避免在白色背景上不可见 */ background: transparent; border-color: transparent; transition: all 0.3s linear; cursor: pointer; display: block; } .logo_header{ width: 100%; justify-content: space-between; align-items: center; padding: 0 10px; box-sizing: border-box; } }
二、调整JavaScript代码
逻辑保持不变,通过切换类名控制导航菜单的滑入滑出:
const navToggle = document.querySelector('.nav-btn'); const links = document.querySelector('.main_nav'); navToggle.addEventListener('click',function(){ links.classList.toggle("show_nav"); })
额外说明
- 若需要从左侧滑入菜单,只需将
transform: translateX(100%)改为transform: translateX(-100%),同时把right:0替换为left:0。 - 可根据页面风格调整菜单宽度、过渡时长、背景色等参数。
内容的提问来源于stack exchange,提问作者Count of Monte Cristo
相关产品推荐
相关产品推荐

