css - 手机侧边栏 'jumping'

标签 css

我有一个功能类似于 w3schools 的侧边栏,而 w3schools 的侧边栏显示相同的问题。侧边栏“跳跃”并在该区域留下难看的空间,当向下滚动页面和移动 chrome 的导航栏隐藏时,它在顶部留下一个洞,当向上滚动和菜单滑出时,它覆盖了顶部,并且在底部留出空间。

这是我第一次开始测试移动设备时侧边栏的状态(我忘记了)

.sidenav {
    width: 250px;
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 1;
    left: -250px;
    overflow-y: scroll;
    overflow-x: scroll;
    transition: var(--delay);
    overflow: -moz-scrollbars-none !important;

    background: -webkit-linear-gradient(to right, #999999, #999999 95%, #000000 95%, rgba(255,0,0,0) 100%);
    background: -moz-linear-gradient(to right, #999999, #999999 95%, #000000 95%, rgba(255,0,0,0) 100%);
    background: -o-linear-gradient(to right, #999999, #999999 95%, #000000 95%, rgba(255,0,0,0) 100%);
    background: linear-gradient(to right, #999999, #999999 95%, #000000 95%, rgba(255,0,0,0) 100%);
}

我的侧边栏和 w3 的主要区别在于它是可滚动的,因为我会用一些链接填充它。现在,考虑到 w3 和我有同样的错误,我知道一个事实,它不是由放置在侧边栏上的附加内容引起的。

通过测试和研究,我发现移动设备的视口(viewport)(以及 chrome 菜单的隐藏)是真正导致问题的原因,还有底部,浏览器无法更新“顶部”和“底部” ' 到 0。

我尝试通过多种方式解决这个问题:

  1. 去除底部

这最终创建了一个导航链接/内容结束的空间

  1. 使高度 100%

当可扩展的 div 打开并破坏桌面功能时,它就无法滚动

  1. 目前的解决方案

它允许桌面版本完全按预期工作,修复了“空间”或“跳跃”问题,但也使得它无法在移动设备上一直向下滚动。

.sidenav {
    width: 250px;
    position: fixed;
    top: 0;
    height: 100vh;
    z-index: 1;
    left: -250px;
    overflow-y: scroll;
    overflow-x: scroll;
    transition: var(--delay);
    overflow: -moz-scrollbars-none !important;

    background: -webkit-linear-gradient(to right, #999999, #999999 95%, #000000 95%, rgba(255,0,0,0) 100%);
    background: -moz-linear-gradient(to right, #999999, #999999 95%, #000000 95%, rgba(255,0,0,0) 100%);
    background: -o-linear-gradient(to right, #999999, #999999 95%, #000000 95%, rgba(255,0,0,0) 100%);
    background: linear-gradient(to right, #999999, #999999 95%, #000000 95%, rgba(255,0,0,0) 100%);
}

@media (min-width: 1000px) {
    .sidenav {
        bottom: 0;
        height: initial;
    }
}

最佳答案

尝试添加 <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <head>您的 html 文档,看看是否有帮助。

关于css - 手机侧边栏 'jumping',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51466892/

相关文章:

css - Fabric.js 强制调整文本区域内文本的大小

jquery - 一个好看的导航菜单,只剩下一个任务

javascript - 禁用输入值

html - Bootstrap 导航栏下拉子菜单在移动设备上单击不工作,需要长时间点击

html - 图像缩放 IE8

javascript - 如何使用 mapbox.js 作为背景,使 html 内容和导航栏在顶部保持可见?

javascript - 当我使用 chrome 移动版时,div on.click 事件不起作用

jquery div 背景淡入淡出

jquery - CSS/JQuery 边框

javascript - 一个字符中的多种颜色(svg)