【发布时间】:2016-04-21 16:41:59
【问题描述】:
小提琴在下面:
https://jsfiddle.net/y0mj6v2d/5/
我只是苦苦思索如何根据垂直 scoll 位置计算何时添加和删除类的最佳方法。
我希望在我的网站上添加一些侧面板(可能包含横幅等),它们会出现:
- 在页眉和页脚之间
- & 在我的主容器的左右两侧
我的页眉和页脚的高度在整个站点中是恒定的,因此我可以根据 ScrollTop 位置添加一个类,但是我需要的是“侧面板”不要超出页脚。在我的示例中,一旦 Scroll Position + Window 高度大于 Document 高度,将删除固定类,但是我想要实现的是这些面板到达页脚的开始(顶部)并开始向上滚动用户向下滚动页脚时的页面。即固定位置将切换到绝对定位+底部:0??
我现在遇到的问题是如何计算:
- 主面板的高度因站点而异
- 另外,横幅的高度也可能不同
$(function() {
var panels = $(".side-panels");
var pos = panels.offset().top;
$(window).scroll(function() {
var windowpos = $(window).scrollTop() ;
if(windowpos + $(window).height() >= $(document).height()){
panels.removeClass('fixed').addClass('absolute');
}else if(windowpos >= pos){
panels.addClass('fixed');
}else{
panels.removeClass('fixed');
}
});
});
这种方法是实现这一目标的最佳方式还是有更好/更简单的解决方案?
任何帮助将不胜感激
干杯
【问题讨论】:
标签: javascript jquery css