0

YouTubeのiframe埋め込みを保持できるモバイルWebサイトを作成しようとしています。HTML にはビューポート メタタグがあります。

<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">

この機能を追加しようとしています。埋め込みの幅が screen.width より大きい場合は、画面に合わせて埋め込みのサイズを変更します。

iOS と Android 4.0 では問題なく動作しますが、Samsung Galaxy S2 (デフォルト ブラウザ) の Android 2.3.5 では問題が発生します。このデバイスでは、resize イベントで screen.width をアラートすると、イベントが 2 回呼び出されます。最初に適切な値がディスパッチされ、次に悪い値 (より大きな値) がディスパッチされます。

この振る舞いについて何か知っている人はいますか?

4

1 に答える 1

0

奇妙ですが、最初のイベントに「適切な値」があることがわかっているので、タイマーを設定してそれらを1〜2秒間保持できます。そのようにして、値が 0 の場合は先に進んで設定し、var t=setTimeout(resetViewportValues,2000);それ以外の場合は値が既に正しく設定されているので、何もしません。

関数ではresetViewportValues()、幅と高さを必ず 0 に戻してください。 clearTimeout(t);

それが役立つことを願っています

于 2012-05-21T16:14:21.333 に答える