如何检测用户调整浏览器窗口大小?
我正在寻找一个脚本,当用户调整窗口大小或窗口宽度小于900像素时执行某些操作。
如何检测用户调整浏览器窗口大小?
我正在寻找一个脚本,当用户调整窗口大小或窗口宽度小于900像素时执行某些操作。
你可以像这样订阅窗口大小调整事件:
$(window).on("resize", function(event){
console.log( $(this).width() );
});
在使用这种方法时要小心,因为当宽度小于n时执行代码的if语句将在调整满足这些条件的窗口大小时执行无数次该代码。最好设置一些标志或将类添加到文档中,并将其作为条件的一部分。
然而,你所问的问题似乎最适合使用CSS媒体查询解决。例如,如果我们想在窗口小于900px时更改body背景颜色:
@media screen and (max-width: 900px) {
body {
background: #ccc;
}
}
甚至有一个非常好的polyfill,适用于旧版本的IE:https://github.com/scottjehl/Respond
jQuery:
$(window).resize(function() {
//do something
var width = $(document).width();
if (width < 900) {
// do something else
}
});
$(window).resize()
:$(window).resize(function() {
if($(this).width() < 900)
//do whatever you want
});
这里是$.resize的文档。
$(window).resize(function() {
$('body').prepend('<div>' + $(window).width() + '</div>');
// Do stuff
});
$(window).on("resize", function(event){
console.log('User is using resize!');
var w = $(this).width();
if(w < 900)
console.log('Your window is ' + w + 'px (less than 900px)');
});