浏览了很多,摆弄了很多。得出结论,其他人可能会看到我不知道的错误。
代码应该根据窗口高度,侧边栏高度,内容高度等移动侧边栏。
这是代码:
$(document).ready(function() {
var windowheight = $(window).height();
var identheight = $(".ident").height();
var sidebarheight = $(".sidebar").height();
var mainheight = $(".main").height();
var pos = $(window).scrollTop();
var diff = (((sidebarheight + 20) + identheight) - windowheight);
var cur = ((sidebarheight + 20) + (pos - diff)) - 2;
var max = (mainheight + 30);
contentScroll();
$(window).resize(function(){
windowheight = $(window).height();
identheight = $(".ident").height();
sidebarheight = $(".sidebar").height();
mainheight = $(".main").height();
pos = $(window).scrollTop();
diff = (((sidebarheight + 20) + identheight) - windowheight);
cur = (sidebarheight + 20) + (pos - diff);
max = (mainheight + 30);
contentScroll();
});
$(window).scroll(function (){
pos = $(window).scrollTop();
diff = (((sidebarheight + 20) + identheight) - windowheight);
cur = (sidebarheight + 20) + (pos - diff);
max = (mainheight + 30);
contentScroll();
});
function contentScroll() {
if (sidebarheight < mainheight) {
if (diff < identheight) {
if (pos >= identheight) {
$('.sidebar').css({
'margin-top' : (pos - identheight) + 'px'
});
}
} else {
if (pos >= diff && cur <= max) {
$('.sidebar').css({
'margin-top' : (pos - diff) + 'px'
});
}
if (pos <= diff) {
$('.sidebar').css({
'margin-top' : '0px'
});
}
}
}
}
});
我意识到它并不完美,它还处于粗糙的阶段。它在FireFox
中完全正常,但不在chrome
中。正在调用该函数(使用警报进行测试)。它没有做任何事情。
可能有些chrome
阅读语法不同。
如果有人发现我的错误会引起我的注意,那么对我来说,对此持续开头已经太久了。
这是有问题的模拟网站:http://klok-bremen.de/fff/
答案 0 :(得分:1)
使用$(window).load而不是$(document).ready,因为父元素&#39;图像加载后高度会发生变化。