Javascript 带全高度div的粘性导航
我正在使用一个名为SMINT的JQuery插件来创建粘性导航,当滚动时,它会固定在视口的顶部。我试图在页面顶部的导航之前和之后留下一个空间,并在下面留下多个全高div 使用Javascript 带全高度div的粘性导航,javascript,jquery,html,css,sticky,Javascript,Jquery,Html,Css,Sticky,我正在使用一个名为SMINT的JQuery插件来创建粘性导航,当滚动时,它会固定在视口的顶部。我试图在页面顶部的导航之前和之后留下一个空间,并在下面留下多个全高div 使用 * {margin: 0; padding: 0; outline: 0; -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing:border-box; } 使div达到全高(减去粘性导航),但会破坏初始导航。(滚动后导航正常)
* {margin: 0; padding: 0; outline: 0;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing:border-box;
}
使div达到全高(减去粘性导航),但会破坏初始导航。(滚动后导航正常)。卸下边框框,拧紧整个高度
我的尝试:
活生生的例子:你不需要任何插件,这里有一个简单易懂的方法 方法:
var barSelector=“.subMenu”,
offSetToTriggerFixed=1,
OffsetOfix=$(barSelector).offset().top+OffsetOtriggerFixed,
$fixedBar=$(barSelector.eq(0.clone();
//设置克隆样式并附加到正文:
$fixedBar.css({display:'none',position:'fixed',top:0,'z-index':1100});
$('body')。追加($fixedBar);
//设定高度:
var viewPortHeight=$('body').height(),
navHeight=$(条形选择器).outerHeight(),
$anyOtherSec=$('.section')。而不是('.sTop');
$anyOtherSec.css({height:viewPortHeight-navHeight+5});
//需要时触发:
$(窗口)。滚动(函数(){
var fromTop=$(this.scrollTop();
如果(fromTop OP需要使用该特定插件,这使当前问题符合条件。否则它是重复的。谢谢。但我需要.section divs为100%高度减去导航高度。除非,我遗漏了什么,否则在本例中我看不到。@Razvan Dumitru不使用插件-也是一个答案,OPs尤甚新手可能会认为这是实现某些目标的最佳方式或首选方式,而使用自己的代码则更容易。@Colinkley我错过了检查编辑的代码抱歉,我不是非常清楚。第1节、第2节等都需要在导航底部和视区底部之间以100%的高度显示。导航的高度停下来不要紧。
var barSelector = ".subMenu",
offSetToTriggerFixed = 1,
offsettofix = $(barSelector).offset().top + offSetToTriggerFixed,
$fixedBar = $(barSelector).eq(0).clone();
//Set cloned style and append to body:
$fixedBar.css({ display:'none', position: 'fixed', top:0, 'z-index':1100});
$('body').append($fixedBar);
//Set heights:
var viewPortHeight = $('body').height(),
navHeight = $(barSelector).outerHeight(),
$anyOtherSec = $('.section').not('.sTop');
$anyOtherSec.css({ height: viewPortHeight - navHeight + 5});
//Trigger when needed:
$(window).scroll(function(){
var fromTop = $(this).scrollTop();
if (fromTop <= offsettofix) $($fixedBar).hide();
else $($fixedBar).show();
});