Sama seperti kesan ini, gerakkan tetikus dan tarik kotak p untuk memilih elemen dom yang diliputi oleh p.
Adakah anda mempunyai idea bernas yang boleh dilaksanakan
Kaedah yang saya buat adalah untuk menilai offsetLeft, offsetTop p dan offsetLeft, offsetTop setiap elemen yang perlu dipilih Jika elemen dom lebih kecil daripada offsetLeft+Top p, ia dipilih mengikut bingkai .
Tetapi perkara buruknya ialah anda perlu merentasi nilai atribut offset setiap elemen kerana terdapat banyak elemen, terdapat ratusan 1. Mendapatkan nilai atribut akan menyebabkan banyak aliran balik, 2. Ia terlalu banyak untuk menilai setiap masa.
Jadi saya ingin memerah otak dan bertanya sama ada sesiapa mempunyai cara yang lebih baik
Saya mencari kesan cakera rangkaian sebelum ini, dan ingin menyatakannya dengan jelas, tetapi yang itu agak mudah, dan adegan itu benar-benar lebih rumit sedikit
Ia bergantung pada cara anda memikirkannya. Saya menyediakan kaedah yang mudah
Apabila tetikus bergerak, dapatkan e.target dan simpannya, kemudian tapis yang anda mahukan melalui fungsi itu
Ambil Baidu Netdisk sebagai contoh Idea saya ialah: kerana ketinggian setiap item senarai adalah tetap, anda hanya perlu membandingkan persilangan segi empat tepat yang terbentuk apabila tetikus diseret dengan segi empat tepat keseluruhan elemen senarai, dan jumlahnya. pengiraan akan menjadi lebih kecil.
Kaedah khusus ialah:
Apabila
turun tetikus, kira indeks item senarai permulaan
2.(offsetTop of
起始的列表项
+ offsetTop of mouseup) / ketinggian item senarai, dan kemudian tutup keputusan untuk mendapatkan nombor yang dipilih.Kami mempunyai indeks item senarai permulaan dan bilangan item yang dipilih, jadi mudah untuk mengira elemen mana yang dipilih.
Ketinggian bekas induk, ketinggian item tatal/senarai bekas induk ditetapkan, bahagian atas relatif bagi segi empat tepat dan ketinggian segi empat tepat
Pembolehubah ini sepatutnya mencukupi
Di atas adalah logik lengkap, sila cuba tulis kod sendiri!