当我能看到它的最后一部分时,我想修复“#rightPanelscrl”的位置。我使用下面的代码,它在FF中正常运行,而不是在Chrome中工作..任何人都可以请... ..
var sidebarScrollTop = 0;
$(window).load(function () {
sidebarScrollTop = $("#rightPanelscrl").offset();
if ($("#rightPanelscrl").height() > 500) {
alert($("#rightPanelscrl").height());
$(window).scroll(function () {
var docScrollTop = $('body,html').scrollTop();
// alert(docScrollTop);
if (docScrollTop > 500) {
$("#rightPanelscrl").css({ position: 'fixed', top: '-500px' });
}
else {
$("#rightPanelscrl").css({ position: 'static' });
}
});
}
else if ($("#rightPanelscrl").height() < 500) {
$("#rightPanelscrl").css({ position: 'fixed', top: '35px' });
}
});
$(window).resize(function () {
sidebarScrollTop = $("#rightPanelscrl").offset().top;
});
$(document).resize(function () {
sidebarScrollTop = $("#rightPanelscrl").offset().top;
});
答案 0 :(得分:0)
我更喜欢通过在某个滚动点添加CSS类而不是使用jQuery来修改定位来实现这一点。它使代码更简单! Check this out
基本上,你有#rightPanelscrl
<ul id="rightPanelscrl">
<li><a href="#">one</a></li>
<li><a href="#">two</a></li>
<li><a href="#">three</a></li>
<li><a href="#">four</a></li>
<li><a href="#">five</a></li>
</ul>
你的CSS:
body {height: 2000px;}
#rightPanelscrl {
position:absolute;
top:140px;
z-index:4;
width:100%;
}
#rightPanelscrl.fixed {
position:fixed;
top:0px;
}
和你的jQuery:
$(document).ready(function() {
var theLoc = $('#rightPanelscrl').position().top;
$(window).scroll(function() {
if(theLoc >= $(window).scrollTop()) {
if($('#rightPanelscrl').hasClass('fixed')) {
$('#rightPanelscrl').removeClass('fixed');
}
} else {
if(!$('#rightPanelscrl').hasClass('fixed')) {
$('#rightPanelscrl').addClass('fixed');
}
}
});
});