2012-03-26 84 views

回答

4

在完成了大约过去半个小时的工作之后,我认为最简单的方法是手动检查内容的结尾处的滚动点,此时从侧边栏删除固定类,以允许内容在这之后按照预期显示,但是为了让它看起来好像仍然在同一个地方一样,边缘顶部被应用于侧边栏,以便在滚动到结束之后使它坐在它的终点处内容。

这里是的jsfiddle:http://jsfiddle.net/mikeymagic/yxh8m/3/

与该位的jQuery的魔力:

var sidebarheight = $('.sidebar').height(); 
var contentheight = $('.content').height(); 

if (y > (contentheight - sidebarheight)) { 
    $('.sidebar').css({marginTop: contentheight - sidebarheight - 10}); 
    $('.sidebar').removeClass('fixed'); 
} 
else 
    { 
    $('.sidebar').css({marginTop: '0'}); 
    $('.sidebar').addClass('fixed'); 
    } 

此插入其间该

var y = $(this).scrollTop(); 
    if (y >= top) { 
     $('.sidebar').addClass('fixed'); 

这:

} else { 
     $('.sidebar').removeClass('fixed'); 
    } 
    }); 
});​ 
+0

谢谢你魔术:) – 2012-03-27 00:22:15

+0

不用担心酷猫! – 2012-03-27 01:44:41

+0

固定位置是所有那些恼人的'保持这个菜单在你的脸上'脚本,你碰到的甚至可能在互联网上使用33.33%。他们每毫秒更新块的位置的事实太慢并且看起来很迟钝。固定位置===滞后修正:) Upvote for you,先生。 @MagicDev! – 2012-05-10 07:48:55