Javascript 仅在桌面模式下激活jquery功能?
我有一个jquery功能,可以将导航栏粘贴到网页顶部,但我只希望在桌面和平板电脑模式下(而不是在电话模式下)使用此功能。如何取消激活此功能Javascript 仅在桌面模式下激活jquery功能?,javascript,jquery,html,css,media-queries,Javascript,Jquery,Html,Css,Media Queries,我有一个jquery功能,可以将导航栏粘贴到网页顶部,但我只希望在桌面和平板电脑模式下(而不是在电话模式下)使用此功能。如何取消激活此功能 $(document).scroll(function(){ var elem = $('.navbar'); if (!elem.attr('data-top')) { if (elem.hasClass('navbar-fixed-top')) return; var offset
$(document).scroll(function(){
var elem = $('.navbar');
if (!elem.attr('data-top')) {
if (elem.hasClass('navbar-fixed-top'))
return;
var offset = elem.offset()
elem.attr('data-top', offset.top);
}
if (elem.attr('data-top') <= $(this).scrollTop() )
elem.addClass('navbar-fixed-top');
else
elem.removeClass('navbar-fixed-top');
});
$(文档)。滚动(函数(){
var elem=$('.navbar');
如果(!elem.attr('data-top')){
if(元素hasClass('navbar-fixed-top'))
返回;
var offset=elem.offset()
元素属性(“数据顶部”,偏移量顶部);
}
如果(elem.attr('data-top')检查一下——这可能就是你想要的——它们是开源的移动电话检测
使用CSS媒体查询来操纵导航栏。浏览器/操作系统检测不应考虑样式,只应考虑分辨率和媒体类型
根据您的问题,这里真正关心的似乎是在移动设备上保存屏幕不动产。因此,正如大多数其他用户所指出的,您可以在这里使用媒体查询。为了确保在小屏幕情况下不连接侦听器,您可以使用modernizer.mq测试媒体查询并使用返回的值:
if( Modernizr.mq('only screen and (min-height: 640px)') ) {
// Case specific code here, only executed if screen height is > 640px
}
这是假设您愿意添加Modernizer或已经在使用它。如果您还没有包含它,并且只计划使用此单一测试,则可以下载自定义版本(2kB)其中仅包括媒体查询测试。您可能应该将其基于屏幕分辨率,而不是设备/操作系统/浏览器检测,因为这可能是您不想将导航栏固定到网页顶部的实际原因,是吗?请使用媒体查询类将其固定到顶部,以便在不超过某个分辨率时在上,固定顶部不起任何作用。