我已經在這個小提琴中演示了這個問題:http://jsfiddle.net/pda2yc6s爲什麼固定div在水平滾動時出現?
在垂直滾動div變得粘滯。當窗口小於包裝寬度時,水平滾動會使其粘貼到其父div上。
這裏是CSS:
div#wrapper {
background-color: #ffffff;
margin: 0 auto;
width: 1058px;
}
div#mainContent {
float: left;
width: 728px;
}
div#sideBar {
float: right;
width: 300px;
}
.stick {
background-color: #ffffff;
border-bottom: 1px solid;
position: fixed;
top: 0;
height: 46px;
width: 728px;
}
此JavaScript使粘工作:
$(document).ready(function() {
var s = $("#mainContent h1");
s.wrap('<div class="sticky-wrapper"></div>');
var pos = s.position();
var t = $('.sticky-wrapper');
$(window).scroll(function() {
var windowpos = $(window).scrollTop();
if (windowpos >= pos.top) {
t.height(46);
s.addClass("stick");
} else {
t.removeAttr('style');
s.removeClass("stick");
}
});
});
爲什麼是這個樣子這個粘性能如何?如何解決它?
[「* ...對於固定位置的盒子,包含塊由視口建立... *」](http://www.w3.org/TR/css3-positioning/#fixed -pos) – Abhitalks
只是想知道,爲什麼不花費你的努力,只是簡單地使網站更適應狹窄的屏幕(而不是試圖做一個難看的水平滾動側邊欄不那麼醜陋)? – thedarklord47
@ g13預期將'.stick'元素'width'的結果設置爲視口的100%,超過側邊欄? ,或側邊欄右側顯示在'.stick'上。 – guest271314