【问题标题】:Responsive design + jQuery fine except Firefox响应式设计 + jQuery 很好,除了 Firefox
【发布时间】:2014-05-02 23:58:03
【问题描述】:

我正在使用一些非常基本的 jQuery 来强制移动它们的位置:

function ipad() {
var width = jQuery(window).width();
if (width < 1200 && width >= 768){ //if tablet 
jQuery('.mobbut').css('width', '33.333%');
jQuery('#re2').css('max-width', '');
} else {
jQuery('.mobbut').css('width', '100%'); 
jQuery('#re2').css('max-width', '400px');
}
if (width < 768){  //if mobile phone
jQuery('._btnselect').hide();   
} else {
jQuery('._btnselect').show();   
}
}

jQuery(document).ready(function() {
ipad();//run when page first loads
});
jQuery(window).resize(function() {
ipad();//run on every window resize
});
jQuery(window).load(function() {
ipad();//run when page is fully loaded
});

到目前为止,我的网站在 Chrome、Safari、iPad、iPhone 上是完美的,但由于某种原因,当您将 Firefox 窗口的大小调整为小于 1200 像素宽时,它看起来一团糟。亲自尝试here's the webpage。它与jQuery或更多页面布局有关吗?我从另一个设计师那里继承了这个主页,它以前是建立在表格上的,所以这可能会给 FF 带来问题。

【问题讨论】:

  • 为什么不使用媒体查询? css-tricks.com/css-media-queries
  • ^ 这正是媒体查询的目的。
  • 我尝试使用媒体查询,但它们不起作用,我不得不求助于 jQuery 来获得结果。
  • 似乎问题在于 Firefox 的宽度由屏幕上最大图像的宽度决定,而不是调整图像大小以适应窗口...

标签: javascript jquery html css firefox


【解决方案1】:

我尝试使用媒体查询,但它们不起作用,我不得不求助于 jQuery 来获得结果。

如果它们不起作用,可能是因为语法不正确。像这样试试,这几乎就是你的 jQuery 正在做的事情,但更简单:

#re2 {
  max-width: 400px;
}
.mobbut {
  width: 100%;
}

@media only screen and (max-width: 767px) {
  ._btnselect {
    display: none;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1199px) {
  #re2 {
    max-width: none;
  }
  .mobbut {
    width: 33.333%;
  }
}

--编辑--

因为您似乎正在尝试以 iPad 为目标。试试这些媒体查询,来自this post

/* iPads (portrait and landscape) ----------- */
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) {
/* Styles */
}

/* iPads (landscape) ----------- */
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : landscape) {
/* Styles */
}

/* iPads (portrait) ----------- */
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : portrait) {
/* Styles */
}

这些可能比您的 jQuery 调整更可靠,因为它们基于 device-width 而不是页面 width

【讨论】:

    【解决方案2】:

    我在启用firebug(我建议使用它)的情况下运行您的网站,错误出现在以下函数中

    ** function futsal(){
       var wid = jQuery(window).width();
       if (wid <= 1024 && width >= 768){ //if tablet **
    

    就在此处声明 var wid,然后针对宽度进行测试

    我同意上述所有 cmets,但请使用媒体查询。这要容易得多。

    【讨论】:

    • 知道为什么会产生错误以及如何修复它吗?
    • @user3589055 正如dops所说,这个函数的“宽度”是什么?您的意思可能是“wid”。
    • @MiniRagnarok wid 是变量,但我现在看到一个错误,我写的是宽度而不是 wid。现在这个问题已经解决了,在小于 1200 的屏幕尺寸下,网站看起来仍然很糟糕,除了页脚现在可以正常工作了。
    • @user3589055 老实说,我认为您不会有太多运气来尝试使以表格形式制作的网站具有响应性。有时您必须硬着头皮告诉您的上级/客户,他们的要求是不合理的。使网站具有响应性几乎没有捷径。
    • 似乎问题在于 Firefox 的宽度由屏幕上最大图像的宽度决定,而不是调整图像大小以适应窗口...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 2019-05-21
    • 2015-11-01
    • 2013-09-30
    • 2014-03-22
    • 2016-03-17
    相关资源
    最近更新 更多