sticky header 的水平滚动不起作用
Horizontal scrolling of sticky header doesn't working
我的页面上有一个粘性 header,但我发现一个错误,当浏览器 window 较小时,粘性 header 右侧的按钮不可见...并且水平滚动对听众不起作用。
这里是html代码:
<div class="search-container">
<div class="sticky-wrapper">
<!-- it's fixed header -->
</div>
<div class="sidebar">
<!-- search filters e.g. -->
</div>
<div class="content">
<!-- search results e.g. -->
</div>
</div>
这是我的 CSS (sass) 代码:
.search-container {
.sticky-wrapper {
box-shadow: 0 3px 3px 0 #8f8f8f;
position: fixed;
top: 0;
z-index: 999;
}
.sidebar {
float: left;
margin-left: 5px;
width: 229px;
}
.content {
background: none repeat scroll 0 0 #fff;
border-top: 4px solid #5d5d5d;
display: inline;
float: left;
margin-left: 18px;
margin-right: 0;
width: 691px !important;
}
}
当我使浏览器 window 小于(侧边栏 + 内容)宽度时,水平滚动出现 - 但它仅适用于 .sidebar 和 .content。
我怎样才能使 header horizontal-scrollable 也变得粘稠?
P.S。在 FF,Chrome,IE >= 9 中工作很重要。而且我不适合 change/add 新的 css ids 或 类,导致许多测试被破坏。
请帮忙。
谢谢。
如果有帮助 - jsfiddle with header and content
对于我可以测试的以及以前的经验,是在内部添加一个宽度大于容器的 div,然后向该容器添加一个 overflow-x: auto;
例如:
<div class="sticky-wrapper">
<div class="bigger">Your text here</div>
</div>
.sticky-wrapper {
box-shadow: 0 3px 3px 0 #8f8f8f;
position: fixed;
top: 0;
z-index: 999;
background: grey;
width: 900px;
overflow-x: auto;
}
.bigger {
width: 1000px;
}
Fiddle: https://jsfiddle.net/afs5k1zp/1/
我认为单靠CSS无法应对这种情况。如果你加入一点 JS 的味道会更好。试试这个 Fiddle.
添加了一段JS代码:(注:我用过JQuery,有需要的也可以纯JS重写)
$(window).scroll(function() {
var max_width = 990;
if ($(window).width() < max_width) {
$('.sticky-wrapper').css('margin-left', -$(this).scrollLeft() + "px");
}
});
我的页面上有一个粘性 header,但我发现一个错误,当浏览器 window 较小时,粘性 header 右侧的按钮不可见...并且水平滚动对听众不起作用。
这里是html代码:
<div class="search-container">
<div class="sticky-wrapper">
<!-- it's fixed header -->
</div>
<div class="sidebar">
<!-- search filters e.g. -->
</div>
<div class="content">
<!-- search results e.g. -->
</div>
</div>
这是我的 CSS (sass) 代码:
.search-container {
.sticky-wrapper {
box-shadow: 0 3px 3px 0 #8f8f8f;
position: fixed;
top: 0;
z-index: 999;
}
.sidebar {
float: left;
margin-left: 5px;
width: 229px;
}
.content {
background: none repeat scroll 0 0 #fff;
border-top: 4px solid #5d5d5d;
display: inline;
float: left;
margin-left: 18px;
margin-right: 0;
width: 691px !important;
}
}
当我使浏览器 window 小于(侧边栏 + 内容)宽度时,水平滚动出现 - 但它仅适用于 .sidebar 和 .content。
我怎样才能使 header horizontal-scrollable 也变得粘稠?
P.S。在 FF,Chrome,IE >= 9 中工作很重要。而且我不适合 change/add 新的 css ids 或 类,导致许多测试被破坏。
请帮忙。 谢谢。
如果有帮助 - jsfiddle with header and content
对于我可以测试的以及以前的经验,是在内部添加一个宽度大于容器的 div,然后向该容器添加一个 overflow-x: auto;
例如:
<div class="sticky-wrapper">
<div class="bigger">Your text here</div>
</div>
.sticky-wrapper {
box-shadow: 0 3px 3px 0 #8f8f8f;
position: fixed;
top: 0;
z-index: 999;
background: grey;
width: 900px;
overflow-x: auto;
}
.bigger {
width: 1000px;
}
Fiddle: https://jsfiddle.net/afs5k1zp/1/
我认为单靠CSS无法应对这种情况。如果你加入一点 JS 的味道会更好。试试这个 Fiddle.
添加了一段JS代码:(注:我用过JQuery,有需要的也可以纯JS重写)
$(window).scroll(function() {
var max_width = 990;
if ($(window).width() < max_width) {
$('.sticky-wrapper').css('margin-left', -$(this).scrollLeft() + "px");
}
});