8

如何检测用户何时调整浏览器窗口的大小?

我正在寻找一个脚本,它可以在用户调整窗口大小或窗口宽度小于例如 900 像素时执行某些操作。

4

5 回答 5

16

嗯,你可以使用 jQuery,但是......

您可以像这样订阅窗口调整大小事件:

$(window).on("resize", function(event){
  console.log( $(this).width() );
});

请注意这一点,因为当宽度小于n时执行代码的 if 语句会在调整满足这些条件的窗口大小时执行该代码的次数非常可笑。最好在文档中设置一些标志或添加类,并将这些作为您的条件的一部分。

CSS 媒体查询就在这里

但是,您要问的问题听起来最适合使用CSS Media Queries解决。例如,如果我们想在窗口小于 900px 时更改 body 背景颜色:

@media screen and (max-width: 900px) {
  body {
    background: #ccc;
  }
}

旧版本的 IE 甚至还有一个很棒的 polyfill:https ://github.com/scottjehl/Respond

于 2012-05-17T19:44:25.893 回答
11

jQuery:

$(window).resize(function() {
    //do something

    var width = $(document).width();
    if (width < 900) {
       // do something else
    }
});
于 2012-05-17T19:41:31.377 回答
4

您可以使用$(window).resize()如下

$(window).resize(function() {
     if($(this).width() < 900)
       //do whatever you want
  });

这是$.resize的文档

于 2012-05-17T19:42:27.117 回答
4
$(window).resize(function() {
  $('body').prepend('<div>' + $(window).width() + '</div>');
  // Do stuff
});
于 2012-05-17T19:42:42.910 回答
4

根据您的需要,这可以在窗口大小小于 900px 时处理:

 $(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)');
 });​
于 2012-05-17T19:47:31.753 回答