在移动设备上禁用粘性导航
Disable Sticky Nav when on Mobile
我想在移动设备上禁用我的粘性导航栏。请看一下我的 JS 小提琴Visit
http://jsfiddle.net/iolo/0pjrvumm/1/
我有一个设置为 400px 的媒体查询。在大于 400px 的窗口上加载页面时,粘性导航栏效果很好,当我在不刷新浏览器的情况下将其大小调整为小于 400px 时,移动导航栏也很好用。
当我在小于 400 像素的窗口中加载页面时,移动导航栏按计划工作。但是,我遇到的问题是当我在不刷新浏览器的情况下将窗口大小调整为 400 像素以上时。当我开始滚动时,导航栏将跳到顶部,并且无法像往常那样运行。
遇到的问题是,当您使用移动设备时(如果您在移动设备中打开它),那么最初您会var stickyNavTop = $('#main-nav-wrapper-sticky').offset().top;
但是,由于$('#main-nav-wrapper-sticky')
display:none
(由于您的媒体查询<400px
),因此stickyNavTop
设置为0
导致您所有问题的原因,因为您从不调整标题导航的大小,为什么不将其硬编码为var stickyNavTop = 108
?>
或者强制它显示:块($('#sticky-nav-placeholder').css({ 'display': 'block'});
),然后调用var stickyNavTop = $('#main-nav-wrapper-sticky').offset().top;
然后确定是否低于400px,如果这是真的,则重新隐藏它。
$(document).ready(function() {
var stickyNavTop = 108; // Since you never change the height
var stickyNav = function(){
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavTop) {
$('#main-nav-wrapper-sticky').css('position','fixed');
$('#main-nav-wrapper-sticky').css('top','0');
$('#sticky-nav-placeholder').css({ 'display': 'block'});
}
else {
$('#main-nav-wrapper-sticky').css('position','relative');
$('#sticky-nav-placeholder').css({ 'display': 'none'});
}
};
stickyNav();
$(window).scroll(function() {
stickyNav();
});
});
JSFiddle: http://jsfiddle.net/0pjrvumm/11/
- 删除移动视图粘性js上的粘性导航栏
- 在下拉导航中将文本向左移动
- css,用于在移动视图中将引导导航栏更改为accordian
- 自动折叠移动设备上的OpenUI5侧边导航
- Bootstrap更改移动设备的导航栏高度
- 导航菜单不适合移动浏览器
- Angular UI&引导程序:点击链接时折叠移动导航栏
- 为什么我的导航按钮或按钮文本不会移动到中心
- 如何在页面之间导航后停止jquery移动中的重复数据
- 铬移动;导航.地理位置不起作用
- 移动导航菜单不起作用(HTML,CSS和JQuery)
- 显示移动窗口时引导导航栏中的 atach 搜索栏
- 折叠导航按钮不适用于twitter引导程序设计的移动设备
- Bootstrap 3.3-导航栏无法在移动设备上工作
- 我可以'我似乎没有得到我的网站'移动导航开始工作
- jQuery移动Ajax导航功能和CSS样式
- 移动徽标下方的主导航图标
- 使用jQuery移动ajax导航加载多页模板
- 如何仅在窗口宽度从桌面(>1024px)更改为移动(<1025px)导航时重新加载页面
- 实现画布外导航移动与桌面