[英]fixed menu that is fixed after scrolling past a div
我正在为响应站点创建一个固定位置的子导航菜单栏。 我能找到的所有固定菜单示例在滚动后都固定在顶部,这些示例均基于从顶部开始的固定像素数。
但是,由于我正在工作一个响应站点,因此视口而定,需要进入菜单的顶部像素是不同的(在小屏幕上,由于内容填充是更高的屏幕区域,因此菜单应在向下滚动更多区域后出现) 。
我有一个有效的示例,正在使用以下jquery脚本:
$(document).ready(function(){
$('#navigation a, #fixedbar a').on('click', function(e) {
e.preventDefault();
});
$(window).on('scroll',function() {
var scrolltop = $(this).scrollTop();
if(scrolltop >= 215) {
$('#fixedbar').fadeIn(250);
}
else if(scrolltop <= 210) {
$('#fixedbar').fadeOut(250);
}
});
});
如您所见,如果从顶部滚动超过215个像素,则固定条会淡入。 相反,我想让它滚动经过某个div后出现。 这样,我知道它将在用户完全滚动经过介绍文本之后进入。
我想做什么很好的例子? 还是修改jquery脚本的简便方法? 提前致谢。
通过静态导航后,此修改将使其淡入
var $nav = $("#navigation");
if(scrolltop >= $nav.offset().top + $nav.height()) {
$('#fixedbar').fadeIn(250);
}
else {
$('#fixedbar').fadeOut(250);
}
演示 http://jsfiddle.net/EHhQE/1/
当滚动分别到达导航栏的底部和顶部时,您需要淡出和淡入导航。
var topOfDiv = $('#navigation').position().top;
var bottomOfDiv = $('#navigation').position().top+$('#navigation').outerHeight(true);
并获取您的代码:
$(document).ready(function(){
$('#navigation a, #fixedbar a').on('click', function(e) {
e.preventDefault();
});
$(window).on('scroll',function() {
var scrolltop = $(this).scrollTop();
var topOfDiv = $('#navigation').position().top;
var bottomOfDiv = $('#navigation').position().top+$('#navigation').outerHeight(true);
if(scrolltop >= bottomOfDiv) {
$('#fixedbar').fadeIn(250);
}
else if(scrolltop <= topOfDiv) {
$('#fixedbar').fadeOut(250);
}
});
});
$(document).ready(function ()
{
slider();
});
$(window).scroll(function ()
{
slider();
});
function slider()
{
if (document.body.scrollTop > 208)
$('#fixedMenu').fadeIn(0);
else
$('#fixedMenu').fadeOut(0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.