javascript - 全高 div 的粘性导航

标签 javascript jquery html css sticky

我正在使用一个名为 SMINT 的 JQuery 插件来创建粘性导航,该导航在滚动时固定在视口(viewport)的顶部。我试图在页面顶部的导航前后留一个空格,并在下面留出多个全高 div。

使用

* {margin: 0; padding: 0; outline: 0;
-moz-box-sizing:border-box; 
 -webkit-box-sizing:border-box; 
 box-sizing:border-box;
 }

使 div 全高(减去粘性导航)但破坏了初始导航。 (滚动导航后就可以了)。移除边框会破坏整个高度。

我的尝试:https://jsfiddle.net/colintkelly/uxsg6mL8/

实例:http://www.banditfish.com/black-fives/

最佳答案

您不需要任何插件 - 这里有一个快速且易于理解/自定义的插件 方法:

JSnippet demo - using your HTML without smint

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();
});

关于javascript - 全高 div 的粘性导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29971326/

相关文章:

javascript - JQuery Lined TextArea 调整大小问题

javascript - 使用输入 jQuery 的 .value() 计算

javascript - Chrome 扩展 : Passing message by button from popup. html 到事件页面

javascript - UIKIT Lightbox Javascript 关闭

javascript - 谷歌地图3重绘折线闪烁

javascript - 使用 JS 或 Jquery 替换特定 DIV 中嵌套键的所有实例

javascript - 在另一个函数中触发点击函数

javascript - 没有jquery ui的可拖动: how to stop dragging the not-draggable and type-able elements?

php - 从转录的 PDF 文件缩放 HTML

javascript - 用 Angular.js 替换 <img> src