Hem masaüstlerinden hem de tabletlerden kullanılması amaçlanan bir Web sitesi yazıyorum. Bir masaüstünden ziyaret edildiğinde, ekranın tıklanabilir alanlarının :hover
efektlerle (farklı arka plan rengi, vb.) Aydınlatılmasını istiyorum. Tablet ile fare yok, bu yüzden herhangi bir vurgulu efekt istemiyorum.
Sorun şu ki, tablette bir şeye dokunduğumda, tarayıcının açıkça dokunduğum konuma hareket eden bir tür "görünmez fare imlecine" sahip olması ve sonra onu orada bırakması - böylece az önce dokunduğum şey bir başka bir şeye dokunana kadar fareyle üzerine gelme efekti.
Fareyi kullanırken vurgulu efektleri nasıl elde edebilirim, ancak dokunmatik ekranı kullanırken bunları nasıl bastırabilirim?
Birinin bunu önermeyi düşünmesi durumunda, kullanıcı aracısı koklamayı kullanmak istemiyorum. Aynı cihaz hem dokunmatik ekrana hem de fareye sahip olabilir (bugün pek yaygın olmayabilir, ancak gelecekte çok daha fazlası olabilir). Cihazla ilgilenmiyorum, şu anda nasıl kullanıldığıyla ilgileniyorum: fare veya dokunmatik ekran.
Zaten çengel çalıştı touchstart
, touchmove
ve touchend
etkinliklerle çağırarak preventDefault()
bastırmak "görünmez fare imlecini" biraz zaman işlevi gören hepsinin üzerinde; ancak iki farklı öğe arasında hızlı bir şekilde ileri geri tıklarsam, birkaç dokunuştan sonra "fare imlecini" hareket ettirmeye ve yine de vurgulu efektleri aydınlatmaya başlar - sanki benim preventDefault
her zaman onurlandırılmamış gibi. Gerekmedikçe sizi ayrıntılarla sıkmayacağım - Bunun doğru yaklaşım olduğundan bile emin değilim; Eğer birinin daha basit bir düzeltmesi varsa, tamamen kulağım.
Düzenleme: Bu, bataklık standardı CSS ile çoğaltılabilir :hover
, ancak burada referans için hızlı bir yeniden çalışma var.
<style>
.box { border: 1px solid black; width: 150px; height: 150px; }
.box:hover { background: blue; }
</style>
<div class="box"></div>
<div class="box"></div>
Kutulardan herhangi birinin üzerine fareyi getirirseniz, istediğim mavi bir arka plan alır. Ancak kutulardan birine dokunursanız, mavi bir arka plan da alacaktır, ki bu benim önlemeye çalıştığım şeydir.
Ayrıca burada yukarıdakileri yapan ve jQuery'nin fare olaylarını kancalayan bir örnek yayınladım . Ayrıca ateş edeceğini musluk etkinlikleri görmek için kullanabilirsiniz mouseenter
, mousemove
ve mouseleave
.