我如何使这个JavaScript只适用于最小宽度为1036px的浏览器上的用户
How do I make this JavaScript only work for users on browsers with a min-width of 1036px?
在下面的代码中,我想让columnWidth
240仅在浏览器上查看站点时使用最小宽度为1036px。所以,一般只适用于桌面用户。对于任何浏览器宽度低于1036px,我希望columnWidth
为320。这可能吗?
if(jQuery().isotope) {
$container = jQuery('.home #masonry');
$container.imagesLoaded( function() {
$container.isotope({
itemSelector : '.item',
masonry: {
columnWidth: 240
},
getSortData: {
order: function($elem) {
return parseInt($elem.attr('data-order'));
}
},
sortBy: 'order'
}, function() {
// Isotope Chrome Fix
setTimeout(function () {
jQuery('.home #masonry').isotope('reLayout');
}, 1000);
});
});
// filter items when filter link is clicked
$container = jQuery('#masonry');
jQuery('#filter li').click(function(){
jQuery('#filter li').removeClass('active');
jQuery(this).addClass('active');
var selector = jQuery(this).find('a').attr('data-filter');
$container.isotope({ filter: selector });
return false;
});
}
你在问两件事,如何找出屏幕大小和如何使它为你的代码工作。
对于屏幕大小,您可以使用screen
对象(全局作用域),因此screen.width
是屏幕的宽度。或者你可以使用outerWidth
或innerWidth
,它们应该返回与window
相关的大小(尽管它们有自己的怪癖)。
现在,关于你的问题,owwyess建议你混合javascript和json符号这是不可能的,所以你应该做一些像
masonry: {
columnWidth: screen.width >= 1036 ? 240 : 320
}
(如果你不知道语法,它被称为三元运算符,通过它进入谷歌)
嗯,我认为你不能检查屏幕大小?(不确定),但浏览器的大小是这样做的,(如果它也适合你的需要):
if ($(window).width() < 1024) {
// foo
} else {
// bar
}
如果有帮助的话,你也可以尝试将$(window).width()
更改为:
$(document).width()
$('body').width()
if(jQuery().isotope) {
$container = jQuery('.home #masonry');
$container.imagesLoaded( function() {
$container.isotope({
itemSelector : '.item',
masonry: {
$(window).resize(function() {
if (screen.width >= 1036) {
columnWidth: 240
} else {
columnWidth: 320
}
});
},
getSortData: {
order: function($elem) {
return parseInt($elem.attr('data-order'));
}
},
sortBy: 'order'
}, function() {
// Isotope Chrome Fix
setTimeout(function () {
jQuery('.home #masonry').isotope('reLayout');
}, 1000);
});
});
// filter items when filter link is clicked
$container = jQuery('#masonry');
jQuery('#filter li').click(function(){
jQuery('#filter li').removeClass('active');
jQuery(this).addClass('active');
var selector = jQuery(this).find('a').attr('data-filter');
$container.isotope({ filter: selector });
return false;
});
}
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 有时数据是't显示在浏览器中
- 使图像在单击时展开到不大于浏览器
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- 不同浏览器中的空白字符正则表达式行为
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何临时暂停浏览器渲染,然后恢复整个页面
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 禁用(而不是隐藏)浏览器滚动条
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 如何使用modalDialog来显示可以在所有浏览器中工作的弹出窗口
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 是否可以在浏览器中使用纯JavaScript保存音频流
- jQuery检测浏览器是否支持Zoom
- 我如何使这个JavaScript只适用于最小宽度为1036px的浏览器上的用户