iOS デバイスの Safari を使用してモバイル Web アプリケーション内に iFrame を埋め込もうとすると、共通の課題が 1 つ発生します。それは、iFrame のサイズを制限することです。 iPhoneの画面にフィットします。 iFrame 要素内の高さと幅の属性は、多くの場合効果がありません。
ただし、簡単な解決策は、iFrame を div 要素内で囲むことです。これにより iFrame のサイズを制御できるようになりますが、iFrame 内でスクロールできないという新たな問題が発生します。
この問題に対処するには、次の手順を実行してください:
以下は、JavaScript と HTML コードの例です。これを達成します:
// JavaScript setTimeout(function () { var startY = 0; var startX = 0; var b = document.body; b.addEventListener("touchstart", function (event) { parent.window.scrollTo(0, 1); startY = event.targetTouches[0].pageY; startX = event.targetTouches[0].pageX; }); b.addEventListener("touchmove", function (event) { event.preventDefault(); var posy = event.targetTouches[0].pageY; var h = parent.document.getElementById("scroller"); var sty = h.scrollTop; var posx = event.targetTouches[0].pageX; var stx = h.scrollLeft; h.scrollTop = sty - (posy - startY); h.scrollLeft = stx - (posx - startX); startY = posy; startX = posx; }); }, 1000);
iFrame コンテンツを制御しない場合は、代わりにオーバーレイを実装できることに注意してください。ただし、このソリューションでは、スクロール以外の iFrame のコンテンツとの対話は許可されません。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3