初期のビューポイント設定よりも広くなければならないdiv要素を挿入するフォームから情報を返すときに、現在iphone(3/4 / 4s)でビューポートの設定に苦労しています。
何が起こっているのかを正確に単純化するために、以下に非常に基本的なデモを含めましたが、それはiphoneで表示した場合にのみ意味があります(画面の幅が広いため、通常のコンピューターブラウザーでは問題なく表示されます。
または簡単に言えば:
1)ビューポートは次のように設定されています。<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1">
これにより、iphone 4sでは、Webページを表示したときの初期幅が320ピクセルになります。
2)jquery(ajaxリクエスト)を使用してページでフォームを送信すると、ajaxリクエストは500ピクセル幅でなければならないdivを含むhtmlコードを返します。これは現在のWebページに挿入されます。
3)ビューポートが小さすぎて、この挿入されたdiv要素の幅全体を表示できません。
4)ビューポートを動的にリセットするか、ズームアウトして、ユーザーが手動で何もしなくてもこの新しいdivが表示されるようにするにはどうすればよいですか?
5)(このdivはページの上部に挿入され、その下にフォームが残ります。ユーザーをページの上部に再配置することは可能ですか?window.scrollTo(0、0);は機能すると思いますが、私はわからない。)
これは非常に簡単なデモですが、これはiPhoneで表示する必要があります。
<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1">
<style>
#clickbox { background:yellow; display: block;}
.box { background: red; width: 500px; height:200px; border: 2px solid; margin: 5px}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="clickbox"><button id="button">Click me!</button></div>
<script>
$("#button").click(function (){
$("#clickbox").before( "<div class='box'>Oh look at me! I'm too wide, how can I reset the view point to view my complete width!?</div>" );
});
</script>
</body>
</html>
あなたがそれをより簡単に見つけるならば、このコードはすでにここでオンラインになっています:
私が試したこと:
- メタビューポートタグの複数のバリエーション。文字通り、初期/最小/最大スケールの約20の異なる組み合わせ。
- 次のようなコンテンツdivのjqueryminupulation:
$('a').bind('click',function(event){ $("#viewport").prop("content","width=550, maximum-scale = 1") });
- 他のさまざまなクレイジーなアイデア。正しく動作するものはありません。
任意の提案やポインタは非常に高く評価されています。ありがとうございました。