Saya memiliki elemen yaitu posisi: tetap dan gulungan dengan halaman bagaimana saya menginginkannya. ketika pengguna menggulir ke atas Saya ingin elemen berhenti menggulir pada titik tertentu, katakan ketika 250px dari atas halaman, apakah ini mungkin? Bantuan atau saran apa pun akan sangat membantu, terima kasih!
Saya merasa bahwa saya perlu menggunakan jquery untuk melakukannya. Saya mencoba mendapatkan scrolling atau lokasi di mana pengguna berada tetapi benar-benar bingung, apakah ada solusi jquery?
jquery
css
positioning
Louise McComiskey
sumber
sumber
Jawaban:
Berikut adalah plugin jQuery cepat yang baru saja saya tulis yang dapat melakukan apa yang Anda butuhkan:
Lihat contoh kerja →
sumber
$('window')
tidak boleh dalam tanda kutip. Tapi terima kasih untuk ini, itu sangat membantu.Apakah yang Anda maksud seperti ini?
http://jsfiddle.net/b43hj/
Tampilkan cuplikan kode
sumber
bottom
dan nilai yang dihitung ini (diimbangi dengan 250) secara maksimal.Berikut adalah plugin jquery lengkap yang memecahkan masalah ini:
https://github.com/bigspotteddog/ScrollToFixed
Deskripsi dari plugin ini adalah sebagai berikut:
Plugin ini digunakan untuk memperbaiki elemen ke bagian atas halaman, jika elemen akan digulir keluar dari tampilan, secara vertikal; Namun, ini memungkinkan elemen untuk terus bergerak ke kiri atau kanan dengan scroll horizontal.
Dengan opsi marginTop, elemen akan berhenti bergerak ke atas secara vertikal setelah scroll vertikal mencapai posisi target; tetapi, elemen akan tetap bergerak horizontal saat halaman di-scroll ke kiri atau kanan. Setelah halaman digulir kembali melewati posisi target, elemen tersebut akan dikembalikan ke posisi semula pada halaman.
Plugin ini telah diuji di Firefox 3/4, Google Chrome 10/11, Safari 5, dan Internet Explorer 8/9.
Penggunaan untuk kasus khusus Anda:
sumber
Anda dapat melakukan apa yang dilakukan James Montagne dengan kodenya di jawabannya, tetapi itu akan membuatnya berkedip di Chrome (diuji di V19).
Anda dapat memperbaikinya jika Anda meletakkan "margin-top" daripada "top". Tidak begitu tahu mengapa ini bekerja dengan margin tho.
http://jsbin.com/idacel
sumber
Solusi HANYA CSS yang mungkin dapat dicapai
position: sticky;
Dukungan browser sebenarnya sangat bagus: https://caniuse.com/#search=position%3A%20sticky
berikut ini contohnya: https://jsfiddle.net/0vcoa43L/7/
sumber
solusi saya
sumber
Dalam sebuah proyek, saya sebenarnya memiliki beberapa heading yang diperbaiki ke bagian bawah layar saat pemuatan halaman (ini adalah aplikasi menggambar sehingga judulnya ada di bagian bawah untuk memberikan ruang maksimum ke elemen kanvas pada viewport lebar).
Saya membutuhkan heading untuk menjadi 'absolute' ketika mencapai footer pada scroll, karena saya tidak ingin heading di atas footer (warna heading sama dengan warna background footer).
Saya mengambil tanggapan terlama di sini (diedit oleh Gearge Millo) dan potongan kode itu berfungsi untuk kasus penggunaan saya. Dengan beberapa bermain-main saya mendapatkan ini bekerja. Sekarang heading tetap berada dengan indah di atas footer setelah mencapai footer.
Hanya berpikir saya akan membagikan kasus penggunaan saya dan cara kerjanya, dan mengucapkan terima kasih! Aplikasi: http://joefalconer.com/web_projects/drawingapp/index.html
sumber
Saya menulis posting blog tentang ini yang menampilkan fungsi ini:
sumber
Solusi menggunakan Kerangka Mootools.
http://mootools.net/docs/more/Fx/Fx.Scroll
Dapatkan Posisi (x & y) elemen di mana Anda ingin menghentikan scroll menggunakan $ ('myElement'). GetPosition (). X
$ ('myElement'). getPosition (). y
Untuk jenis animasi penggunaan gulir:
new Fx.Scroll ('scrollDivId', {offset: {x: 24, y: 432}}). toTop ();
Untuk langsung mengatur gulir gunakan:
new Fx.Scroll (myElement) .set (x, y);
Semoga ini membantu !! : D
sumber
Saya menyukai solusi ini
masalah saya adalah bahwa saya harus berurusan dengan wadah posisi relatif di Adobe Muse.
Solusi saya:
sumber
Hanya kode mVChr improvisasi
sumber
$(this)
dan$(window)
memasukkan variabel adalah agar Anda hanya perlu melakukan$this.height()
dan seterusnya. Alih-alih mengatur posisi teratas, bukankah lebih baik jika plugin menyimpan nilai atas asli dan kembali ke nilai tersebut saat menyetel lebar tetap? Juga, apa maksudmu denganJust improvised mVChr code
?Saya mengadaptasi jawaban @ mVchr dan membalikkannya untuk digunakan untuk pemosisian iklan melekat: jika Anda membutuhkannya benar-benar diposisikan (bergulir) hingga sampah header keluar dari layar tetapi kemudian membutuhkannya untuk tetap terpaku / terlihat di layar setelah itu:
CSS:
sumber
Saya suka jawaban @james tetapi saya mencari kebalikannya yaitu hentikan posisi tetap tepat sebelum footer, inilah yang saya dapatkan
Jadi sekarang elemen tetap akan berhenti tepat sebelum footer. dan tidak akan tumpang tindih dengannya.
sumber