11

Firefoxは、を使用するときに適切な値を返すように、より適切に装備されている必要があるように思われます$(window).height()

jQuery1.8.2を使用しています。これはその特定のビルドのバグですか?私がテストした他のすべてのブラウザは、ビューポートの高さを計算するときに適切な値を返します。

これを回避するために、以下のスニップを使用してピクセル値をdivに適用しました。

$(window).bind('cwsObjectsShown', function() {
  var height = $(window).height();
  if (height === 0) {
     height = window.innerHeight;
  }
  height = height - '120';
  $('#game_objects').css('height', height + 'px');
});
4

7 に答える 7

47

jQueryの$(window).height()はdoctypeに敏感です。<!doctype html>を試してください?

jQuery1.8.1リリースノートには

クァークズモードは使用しないでください。jQueryはQuirksモードをサポートしたことがなく、Quirksでテストを実行していません。これは$( "window")。height()のような値に影響を与える可能性があり、jQuery 1.8 Quirksモードの結果は、いくつかの最新のブラウザー機能をサポートするために変更されました。私たちが見た問題の大部分は、標準モードになりたいが、タグの前に無効なDoctypeまたは無関係なマークアップがあった開発者からのものです。疑わしい場合は、単純で短い<!doctypehtml>を使用してください。

たとえば、jQuery1.8.2とFirefox16では、doctype htmlでは有効な$(window).height()が得られますが、doctypehtml5ではheight0が得られます。Chromium 20では、両方が機能します。(W3C HTML5仕様では、html5ではなくdoctype htmlを使用するように指示されています。)

于 2012-11-06T20:46:31.837 に答える
4

この関数を試してください:

function GetBrowserDim() {
    if (window.innerHeight) {
        return { w: window.innerWidth, h: window.innerHeight};
    } else {
        return { w: document.body.clientWidth, h: document.body.clientHeight };
    }
}
于 2016-09-03T11:22:26.507 に答える
3

$(window).height()および$(window).width()は、互換モードの場合、IEで0を返します。FireFoxでこれをチェックしないでください。同じかもしれません。代わりに$(document).height()または$(document).width()を使用してみてください。

于 2016-04-14T09:52:49.427 に答える
2

私の場合、html要素の属性を削除する必要がありました

<html lang="en-US" prefix="og: http://ogp.me/ns#">

ただに変更

<html>

今、私は正しいドキュメントの幅と高さを取得します

于 2015-01-22T05:23:45.670 に答える
1

Firefoxのjqueryによるこの奇妙な高さのレンダリングに対する答えを見つけました...

doctypeを使用してhtmlタグでclass="no-js"を使用しました...これを削除すると、FFが正しく計算されました...したがって、このクラスを次のようにjqueryで追加しました$('html')。addClass('no- js');

これで、計算はすべてのブラウザで同じになります。

于 2013-06-11T16:22:32.647 に答える
1

最初にタグを使用する必要が<!DOCTYPE html>あり、すべてがうまくいきます。

于 2019-04-21T13:20:50.033 に答える
0

次のコードを試してください。

$(function(){
  $(window).on('cwsObjectsShown', function() {
    alert($(this).height());
  });   
});
于 2012-10-17T15:17:56.060 に答える