[解決済み】JavaScriptで画像の本当の幅と高さを取得する?(サファリ/クロームの場合)
2022-04-16 13:17:57
質問
jQueryのプラグインを作成しています。
SafariでJavascriptを使用して、実際の画像の幅と高さを取得するには?
以下は、Firefox 3、IE7、Opera 9で動作します。
var pic = $("img")
// need to remove these in of case img-element has set width and height
pic.removeAttr("width");
pic.removeAttr("height");
var pic_real_width = pic.width();
var pic_real_height = pic.height();
しかし、SafariやGoogle ChromeなどのWebkitブラウザでは、値は0になります。
解決方法は?
Webkit ブラウザは、画像が読み込まれた後に height および width プロパティを設定します。 タイムアウトを使用する代わりに、画像のonloadイベントを使用することをお勧めします。 以下に簡単な例を示します。
var img = $("img")[0]; // Get my img elem
var pic_real_width, pic_real_height;
$("<img/>") // Make in memory copy of image to avoid css issues
.attr("src", $(img).attr("src"))
.load(function() {
pic_real_width = this.width; // Note: $(this).width() will not
pic_real_height = this.height; // work for in memory images.
});
CSSが画像の寸法に及ぼす影響を避けるため、上記のコードでは画像のインメモリーコピーを作成しています。 これは FDディスク .
また
naturalHeight
と
naturalWidth
HTML5 の属性です。
関連
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み】Redux TypeError: 未定義のプロパティ 'apply' を読み取れない
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] 入力テキスト要素のボーダーハイライトを削除する方法
-
[解決済み】Firefox のカスタム CSS スクロールバー
-
[解決済み】Chrome / Safariでフレックス親の高さが100%充填されない。
-
[解決済み】WebKitとは何ですか、CSSとどのような関係があるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングした
-
[解決済み】SyntaxError: 'import' と 'export' は 'sourceType: module' とだけ表示されるかもしれない - Gulp
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み】TypeError:res.jsonは関数ではありません。
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み] JavaScriptでURLにパラメータを追加する