媒体查询和 JavaScript 窗口调整不同的宽度
Media queries plus javascript window resize different width
我正在使用一些javascript来检测宽度变化,只要媒体查询。我需要两者,因为我需要移动 html。两者都有效,除了它们发生的时间不同,我猜滚动条包含在其中一个中,但假设 15px 滚动条是愚蠢的,因为它的宽度在浏览器中并不相同。有没有更好的方法?
我的媒体查询像这样激活:
<link rel="stylesheet" href="mobile.css" media="screen and (max-width: 767px)" />
并使用 :
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
虽然我的JS看起来像这样:
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
var pause = 100;
$(window).resize(function() {
delay(function() {
var width = $(window).width();
if ( width >= 768 ) {
if (window.myDevice != 'desktop' || window.myDevice === undefined) {
window.myDevice = 'desktop';
$('#head').prepend($('#branding'));
}
} else if ( width <= 767 ) {
if (window.myDevice != 'mobile' || window.myDevice === undefined) {
window.myDevice = 'mobile';
$('#content').prepend($('#branding'));
}
}
}, pause );
});
谢谢!
使用在 http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript 找到的脚本,我已经解决了这个问题。
添加了功能
function viewport() {
var e = window, a = 'inner';
if (!('innerWidth' in window )) {
a = 'client';
e = document.documentElement || document.body;
}
return { width : e[ a+'Width' ] , height : e[ a+'Height' ] };
}
然后在我的(window).resize()
中使用viewport().width
引用宽度,如下所示:
$(window).resize(function() {
delay(function() {
var width = $(window).width();
if ( width >= 768 ) {
if (window.myDevice != 'desktop' || window.myDevice === undefined) {
window.myDevice = 'desktop';
$('#head').prepend($('#branding'));
}
} else if ( width <= 767 ) {
if (window.myDevice != 'mobile' || window.myDevice === undefined) {
window.myDevice = 'mobile';
$('#content').prepend($('#branding'));
}
}
}, pause );
});
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- ExtJS——在展开/折叠时调整面板高度
- j查询utc offSets的时差
- 如何有效地将游戏数据存储在URL查询字符串中
- 媒体查询和调整现成的网站
- 基于媒体查询的angular js动画无法调整窗口大小
- AJAX查询处于活动状态时禁用窗口大小调整
- j查询调整大小时移动元素
- 使用显示的响应式导航栏:无仍然显示,即使它旨在显示何时使用媒体查询调整屏幕大小
- 媒体查询和 JavaScript 窗口调整不同的宽度
- j查询窗口大小调整和媒体查询
- XSS 攻击漏洞 - 使用 JavaScript 或 jQuery 调整查询
- j查询自动调整选项卡的高度
- 有没有一种方法可以将每个文本区域自动调整为其大小's从数据库查询返回的数据
- 在窗口上设置产品滑块宽度,同时调整CSS媒体查询的大小
- 调整浏览器大小时,Modernizr Media查询不起作用
- 更换观察窗.使用CSS媒体查询来调整大小
- Fire脚本一次与JQuery窗口大小调整和媒体查询
- 使用媒体查询调整图像大小