Bagaimana untuk Melaksanakan Tatal Di Dalam iFrame pada Safari Mudah Alih?

DDD
Lepaskan: 2024-11-11 12:39:02
asal
646 orang telah melayarinya

How to Implement Scrolling Inside an iFrame on Mobile Safari?

Memaparkan iFrames dalam Safari Mudah Alih

Apabila cuba membenamkan iFrame dalam aplikasi web mudah alih menggunakan Safari pada peranti iOS, satu cabaran biasa timbul: mengehadkan dimensi iFrame kepada muatkan skrin iPhone. Atribut ketinggian dan lebar dalam elemen iFrame selalunya tidak mempunyai kesan.

Walau bagaimanapun, penyelesaian mudah terletak pada melampirkan iFrame dalam elemen div. Ini membenarkan kawalan saiz iFrame, tetapi ia menimbulkan isu baharu: ketidakupayaan untuk menatal dalam iFrame.

Untuk menangani isu ini, laksanakan langkah berikut:

  1. Balut iFrame dalam div dengan ketinggian dan lebar yang ditentukan untuk mengekangnya dimensi.
  2. Dalam kandungan iFrame, laksanakan JavaScript untuk berkomunikasi dengan induk div yang dilampirkan.
  3. Tambahkan pendengar peristiwa sentuhan pada badan iFrame untuk menangkap peristiwa sentuhan dan mengemas kini kedudukan tatal ibu bapa dengan sewajarnya.

Di bawah ialah contoh kod JavaScript dan HTML untuk dicapai ini:

// 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);
Salin selepas log masuk
<!-- HTML -->
<div>
Salin selepas log masuk

Sila ambil perhatian bahawa jika anda tidak mengawal kandungan iFrame, anda boleh melaksanakan tindanan sebaliknya. Walau bagaimanapun, penyelesaian ini tidak akan membenarkan interaksi dengan kandungan iFrame, selain daripada menatal.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Tatal Di Dalam iFrame pada Safari Mudah Alih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan