Apakah overflow:hidden
berlaku untuk <body>
iPhone Safari? Sepertinya tidak. Saya tidak dapat membuat pembungkus di seluruh situs web untuk mencapai itu ...
Apakah Anda tahu solusinya?
Contoh: Saya memiliki halaman yang panjang, dan saya ingin menyembunyikan konten yang berada di bawah "lipatan", dan itu harus berfungsi pada iPhone / iPad.
Jawaban:
Saya memiliki masalah yang sama dan menemukan bahwa menerapkan
overflow: hidden;
keduanyahtml
danbody
memecahkan masalah saya.Untuk iOS 9, Anda mungkin perlu menggunakan ini sebagai gantinya: (Terima kasih chaenu!)
sumber
position: relative
.sumber
Beberapa solusi yang tercantum di sini memiliki beberapa gangguan aneh ketika meregangkan gulungan elastis. Untuk memperbaikinya saya menggunakan:
Sumber: http://www.teamtownend.com/2013/07/ios-prevent-scrolling-on-body/
sumber
position: relative
), namun, posisi gulir hilang setelah mengembalikan styling standar (misalnya, menu penutup).// on menu open // save window pos $('body').attr( 'data-pos', $(window).scrollTop() ) ; // ... // on menu close // scroll to saved window pos $( window ).scrollTop( $('body').attr( 'data-pos' ) );
Apakah masalah ini hari ini di iOS 8 & 9 dan tampaknya kita sekarang perlu menambah tinggi: 100%;
Jadi, tambahkan
sumber
Menggabungkan jawaban dan komentar di sini dan pertanyaan serupa di sini berhasil untuk saya.
Jadi posting sebagai jawaban keseluruhan.
Inilah cara Anda perlu meletakkan pembungkus di sekitar konten situs Anda, tepat di dalam
<body>
tag.Buat kelas pembungkus seperti di bawah ini.
Saya juga mendapat ide dari jawaban ini di sini .
Dan jawaban ini di sini juga sudah cukup matang. Sesuatu yang mungkin akan bekerja sama baiknya di kedua desktop dan perangkat.
sumber
Ini bekerja di browser Safari.
sumber
Bagi saya ini:
Tidak cukup, saya tidak bekerja di iOS di Safari. Saya juga harus menambahkan:
Untuk membuatnya bekerja dengan baik. Bekerja dengan baik sekarang :)
sumber
Saya sudah bekerja dengan
<body>
dan<div class="wrapper">
Saat munculan terbuka ...
<body>
mendapat ketinggian 100% dan limpahan: disembunyikan<div class="wrapper">
mendapat posisi: relatif; meluap: tersembunyi; tinggi: 100%;Saya menggunakan JS / jQuery untuk mendapatkan posisi gulir halaman yang sebenarnya dan menyimpan nilai sebagai atribut data ke tubuh
Lalu saya gulir ke posisi gulir di .wrapper DIV (bukan di jendela)
Ini solusinya:
JS / jQuery:
CSS:
Ini berfungsi dengan baik di kedua sisi ... desktop & seluler (iOS).
Tipps dan penyempurnaan dipersilahkan :)
Bersulang!
sumber
tambahkan ini sebagai default ke css Anda
toggleClass kelas ini untuk memotong halaman
ketika Anda mematikan baris pertama kelas ini akan memanggil scrolling bar kembali
sumber
Ya, ini terkait dengan pemutakhiran baru di safari yang merusak tata letak Anda sekarang jika Anda menggunakan overflow: disembunyikan untuk membersihkan divs.
sumber
Itu memang berlaku, tetapi itu hanya berlaku untuk elemen-elemen tertentu dalam DOM. misalnya, itu tidak akan berfungsi pada tabel, td, atau beberapa elemen lain, tetapi akan bekerja pada tag <DIV>.
misalnya:
Hanya diuji di iOS 4.3.
Suntingan kecil: Anda mungkin lebih baik menggunakan overflow: gulir sehingga dua pengguliran jari berfungsi.
sumber
Mengapa tidak membungkus konten yang Anda tidak ingin ditampilkan dalam elemen dengan kelas dan mengatur kelas itu ke
display:none
dalam stylesheet yang dimaksudkan hanya untuk iphone dan perangkat genggam lainnya?sumber
Inilah yang saya lakukan: Saya memeriksa posisi tubuh, kemudian membuat tubuh tetap dan menyesuaikan bagian atas dengan negatif dari posisi itu. Sebaliknya, saya membuat badan statis dan mengatur gulir ke nilai yang saya rekam sebelumnya.
sumber
Cukup ubah tinggi badan <300px (ketinggian viewport seluler di landspace sekitar 300px hingga 500px)
JS
CSS
sumber