$(window).width()在IE9中不起作用

时间:2012-10-19 21:54:37

标签: javascript jquery

  

可能重复:
  $(window).width() not working in IE9

我正在尝试为响应式网页设计做一些DOM操作。在IE中这不起作用。

var w = $(document).width(); 

if (w > 940) {
console.log("If test");     
} else {
console.log("Else test");

如果我使用window.width,它可以在IE中运行,但在其他浏览器中停止工作。是否有跨浏览器方式?

3 个答案:

答案 0 :(得分:2)

var maskWidth = window.innerWidth;
var maskHeight = window.innerHeight;

根据$(window).width() not working in IE9

答案 1 :(得分:2)

响应式设计应该在CSS中使用媒体查询完成:

@media all and (max-width:940px) {
    /* some style rules that should be put in place
       if the window is smaller than 940px wide */
}

答案 2 :(得分:2)

您的方法存在一个固有的问题,那就是“响应”是指响应大小变化的设计。根据您在此处所做的事情,您只能在浏览器加载时进行检测。

比如说,例如,您正在使用iPhone查看此网站,并将手机45度转为横向而不是纵向。基本上,你的宽度刚刚改变,但你的宽度()没有。

如果您需要使用javascript进行DOM操作而无法使用纯CSS(这通常是最好的方法),我建议您查看几个选项:

  1. 查看Rob Tarr http://seesparkbox.com/foundry/responsive_web_design_and_javascript
  2. 建议的matchMedia()方法
  3. 使用http://modernizr.com/或其他已解决此问题的库。