Tidak dapat menatal ke bahagian limpahan elemen di atas halaman
P粉041881924
2023-08-30 21:41:10
<p>Jika saya mengubah saiz halaman, elemen melimpah di atas port pandangan dan saya tidak boleh menatal ke atas untuk melihatnya. Saya menemui soalan dengan penyelesaian tetapi ia tidak berjaya. Saya mempunyai dua div tidak kelihatan "teras" dan satu elemen div yang mengandungi semua kandungan. </p>
<p>Div "bekas" wujud kerana saya cuba menyelesaikan masalah ini. </p>
<p>
<pre class="brush:css;toolbar:false;">.container {
kedudukan: tetap;
atas: 0;
kiri: 0;
lebar: 100%;
ketinggian: 100%;
indeks z: 500;
}
.kandungan utama {
paparan: flex;
lebar: 100%;
ketinggian: 100%;
limpahan: auto;
margin: auto;
}
.window {
/*tinggi: 16vw;
lebar: 27vw;*/
paparan: flex;
ketinggian: 550px;
lebar: 800px;
jawatan: mutlak;
atas: 50%;
kiri: 50%;
sempadan: biru pepejal 5px;
warna latar belakang: hitam;
margin: auto;
limpahan: tersembunyi;
}</pre>
<pre class="brush:html;toolbar:false;"><div class="container">
<div class="kandungan-utama">
<div class="window" id="window1" style="transform: translate(-10%, -90%);">
<div class="header" id="window-header">
<img src="https://picsum.photos/800/550">
<p class="title">navigasi</p>
</div>
</div>
</div>
</div></pre>
</p>
Untuk masalah ini, saya rasa satu-satunya penyelesaian adalah dengan membuat bar skrol tersuai (jika anda perlu meletakkan imej di atas viewport)
Ini adalah kod yang saya buat berdasarkan kod anda
PENJELASAN
Pada asasnya, saya membuat bar skrol menggunakan HTML dan CSS dan meletakkannya di bahagian paling kanan imej
Semoga HTML dan CSS dapat difahami Sekarang, mari kita lihat bahagian JavaScript
Pertama, kami memetakan koordinat tetikus
Kami mencipta pendengar acara yang memanggil fungsi atau menukar pembolehubah seret berhenti
Kemudian kami mencipta fungsi startDrag()
Dalam fungsi ini, mula-mula kita tetapkan seret henti kepada palsu kerana pengguna sedang menyeret bar skrol Kemudian kami menyediakan kod gelung selang Mengikut koordinat, mouse.y kebanyakannya adalah percubaan dan kesilapan. Kami menyemak sama ada ia berada dalam had dan jika ya kami berpindah Kemudian kami menukar kedudukan atas bar skrol semasa menyeret (pengiraan adalah percubaan dan ralat) Kemudian kami menukar kedudukan bawah div kelas tetingkap untuk meletakkan semula div kelas tetingkap (kerana imej itu sendiri tidak boleh diubah kedudukannya; jika anda tidak mahu seluruh div kelas tetingkap bergerak, anda boleh mencipta bekas lain di atasnya) untuk melihatnya Jika penyeretan berhenti, kami kosongkan selang
Terima kasih kepada @TylerH kerana menyelesaikan isu ini. Masalahnya ialah dengan gaya transformasi dalam HTML saya. Selepas mengeluarkannya, ia menatal dengan betul. Daripada apa yang saya lihat, ia seolah-olah mengimbangi penatalan dan seolah-olah mengalihkan keseluruhan halaman dan bukannya elemen sahaja. Terima kasih atas bantuan semua orang, tetapi saya telah mengetahuinya.