Saya mengembangkan situs web menggunakan jQuery UI, dan ada beberapa elemen di situs saya yang tampaknya tidak kompatibel saat dilihat di perangkat layar sentuh; mereka tidak menyebabkan kesalahan apa pun, tetapi perilakunya tidak seperti yang seharusnya.
Elemen yang dimaksud adalah slider dan rangeliders seperti yang didefinisikan oleh jQuery UI; pada layar sentuh, alih-alih mendaftarkan sentuhan sebagai mengambil pegangan dan menarik sebagai menyeret pegangan melintasi slider, itu hanya menggeser seluruh halaman web ke sisi layar. Ini berfungsi jika Anda mengetuk pegangan dan kemudian mengetuk lokasi pada slider di mana Anda ingin pegangan berakhir, tetapi ini sangat lambat dan tidak ideal. Ada ide?
Saya mencoba mengunduh plugin jqtouch dan kemudian melampirkan .touch([...])
ke semua panggilan ke slider () dan rangelider (), tetapi itu tidak berhasil.
Terima kasih!
UPDATE: Saya menemukan "patch" ini di situs jQuery UI
http://bugs.jqueryui.com/ticket/4143
yang mengatakan itu memfasilitasi slider di iPhone, tetapi sekarang untuk pertanyaan bodoh lainnya: bagaimana cara memasukkan "tambalan" ini ke dalam kode saya? Apakah saya hanya memasukkannya di awal kode seperti plugin?
$('.ui-slider-handle').draggable();
Hanya ingin menambahkan beberapa info baru tentang ini. Touch-punch akan bekerja dengan baik untuk iPad dan perangkat Android. Tetapi slider tidak akan berfungsi pada perangkat seluler Windows, sejauh yang saya bisa uji (dengan versi terbaru dari jquery ui & Touch punch)
Perbaikannya cukup sederhana, cukup tambahkan aturan CSS berikut ke .ui-slider-handle:
Semoga ini membantu
sumber
Seperti yang disarankan @dazbradbury, pustaka touchpunch dapat membantu menerjemahkan peristiwa mouse ke peristiwa sentuh. Parameter dalam .draggable () membatasi pergerakan slider sehingga tidak dapat dipindahkan melebihi induk slidernya.
EDIT: Jika Anda sudah menggunakan slider Jquery UI , Anda hanya perlu menyertakan perpustakaan touchpunch. Jangan panggil .draggable () untuk .ui-slider-handle karena itu akan menimpa fungsionalitas yang ada.
sumber
Saya memiliki masalah yang sama. Saya mengembangkan bangunan UI slider yang rumit pada slider jQuery UI hanya untuk menyadari bahwa itu tidak berfungsi sama sekali di seluler. Saya mencoba saran yang tercantum di sini tetapi karena saya memiliki solusi khusus yang hanya berdasarkan pada jQuery UI Slider, itu tidak berhasil.
Cukup gunakan noUiSlider .
Itu melakukan semua fitur yang rumit (dan banyak lagi) seperti yang saya buat di atas slider jQuery UI. Ini berfungsi dengan baik di perangkat seluler dan mudah untuk ditata juga.
sumber