我的移动网络应用程序底部有一个工具栏。我希望能够上下拖动这个工具栏,显示它下面的内容。我希望能够简单地通过使用 HTML/CSS 来做到这一点,而不必使用触摸/滚动事件或移动触摸/滚动库。
我试图通过在主 webapp 顶部覆盖一个滚动元素,并在底部使用工具栏及其内容来做到这一点。我给这个元素一个低于z-index
主要内容的值,这样它就不会阻止用户与主要内容交互,并且给工具栏和它的内容一个更高的值z-index
,以便可以看到和拉/向上滚动。
我创建了一个 jsFiddle,它在桌面版和 Android 版 Chrome 中都具有正确的行为。我可以用手指向上拖动工具栏,也可以用光标在其上方滚动:
不幸的是,工具栏没有出现在 Android 浏览器中(在 4.1 和 4.2 上测试过)。
但是,当我按下工具栏应该在的位置并向上拖动时,它不会滚动页面,直到我将手指移动到足够远以将工具栏一直向上滚动(如果它是可见的)。这是滚动工具栏在 Chrome 中的工作方式,表明工具栏在 Android 浏览器中正确滚动。它只是不可见。
<div id="main-content"></div>
<div id="scroller">
<div id="wrapper">
<div id="toolbar-and-content">
<div id="toolbar">Toolbar</div>
<div id="toolbar-content">Toolbar content</div>
</div>
</div>
</div>
#main-content {
position:relative;
width:100%;
height:300px;
background-color:green;
z-index:1;
}
#scroller {
position:absolute;
top:0;
width:100%;
height:300px;
overflow:auto;
}
#wrapper {
position:relative;
width:100%;
height:500px;
}
#toolbar-and-content {
position:absolute;
bottom:0;
width:100%;
height:250px;
z-index:2;
}
#toolbar {
width:100%;
height:49px;
border-bottom:1px solid black;
background-color:red;
}
#toolbar-content {
width:100%;
height:200px;
background-color:orange;
}
我认为它在 Android 浏览器上不起作用,因为它决定忽略工具栏的 Higher z-index
,因为它位于具有 lower 的元素中z-index
。
无论哪种方式,有谁知道我可以如何更改它以便它可以在 Android 浏览器上运行,和/或是否有其他布局方案可以用来仅通过 HTML/CSS 来实现我想要的?