当访问者向下滚动网站时,我有一个向下滚动的侧边栏 div。问题是,它不会一直向下滚动,我知道为什么会这样。
我假设脚本在加载代码后立即计算文档的高度,但是网站上有不同大小的图像在计算完成后尚未加载,包括也将主图像更改为不同的缩略图单击后的大小。
如果我设置每个图像的高度,那么它会一直正确向下滚动,但我不可能知道然后在实时网站上动态生成的图像大小。
加载所有图像后,脚本有什么方法可以计算文档高度吗?或者其他可以工作的东西?
这是代码:
var documentHeight = 0;
var topPadding = 15;
$(function() {
var offset = $("#sidebar").offset();
documentHeight = $("#maincontainer").height();
$(window).scroll(function() {
var sideBarHeight = $("#sidebar").height();
if ($(window).scrollTop() > offset.top) {
var newPosition = ($(window).scrollTop() - offset.top) + topPadding;
var maxPosition = documentHeight - (sideBarHeight + 0);
if (newPosition > maxPosition) {
newPosition = maxPosition;
}
$("#sidebar").stop().animate({
marginTop: newPosition
});
} else {
$("#sidebar").stop().animate({
marginTop: 0
});
};
});
});