如何使用像jQuery这样的Gmail检测窗口/浏览器大小?在Gmail中,我们在窗口设置中更改窗口分辨率后,无需刷新或重新加载当前页面?在我的项目中,我需要在窗口设置更改后立即刷新浏览器。
任何想法都将受到赞赏。
答案 0 :(得分:72)
您无法从网页中找到显示分辨率。 是一个CSS媒体查询语句,但它在大多数设备和浏览器中实现得很差,如果有的话。但是,您不需要知道显示器的分辨率,因为更改它会导致窗口的(像素)宽度发生变化,可以使用其他人描述的方法检测 :
$(window).resize(function() {
// This will execute whenever the window is resized
$(window).height(); // New height
$(window).width(); // New width
});
您也可以在支持它们的浏览器中使用CSS媒体查询来调整您的网页样式以适应各种显示宽度,但您应该使用em
个单位和百分比以及min-width
和{{1}如果你想要一个适当的灵活布局,你的CSS。 Gmail可能会综合使用所有这些内容。
答案 1 :(得分:15)
你在页面的某个地方创建一个div并输入以下代码:
<div id="winSize"></div>
<script>
var WindowsSize=function(){
var h=$(window).height(),
w=$(window).width();
$("#winSize").html("<p>Width: "+w+"<br>Height: "+h+"</p>");
};
$(document).ready(WindowsSize);
$(window).resize(WindowsSize);
</script>
这是一个片段:
var WindowsSize=function(){
var h=$(window).height(),
w=$(window).width();
$("#winSize").html("<p>Width: "+w+"<br>Height:"+h+"</p>");
};
$(document).ready(WindowsSize);
$(window).resize(WindowsSize);
&#13;
#winSize{
position:fixed;
bottom:1%;
right:1%;
border:rgba(0,0,0,0.8) 3px solid;
background:rgba(0,0,0,0.6);
padding:5px 10px;
color:#fff;
text-shadow:#000 1px 1px 1px,#000 -1px 1px 1px;
z-index:9999
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="winSize"></div>
&#13;
当然,根据您的需求进行调整! ;)
答案 2 :(得分:7)
您可以使用以下方法获取浏览器宽度和高度的值:
$(window).height();
$(window).width();
要在调整浏览器大小时收到通知,请使用此绑定回调:
$(window).resize(function() {
// Do something
});
答案 3 :(得分:6)
您想要检测窗口调整大小的时间吗?
您可以使用JQuery的resize附加处理程序。
答案 4 :(得分:5)
//get dimensions
var height = $(window).height();
var width = $(window).width();
//refresh on resize
$(window).resize(function() {
location.reload(true)
});
不确定您是否想要修改元素的尺寸或实际刷新页面。所以这里有很多不同的东西选择你想要的东西。如果你真的想要,你甚至可以将高度和宽度放在resize事件中。
答案 5 :(得分:1)
您还可以使用普通Javascript window.innerWidth
来比较宽度。
但是使用jQuery的.resize()
会自动为您启动:
$( window ).resize(function() {
// your code...
});