SORU
25 AĞUSTOS 2009, Salı


Nasıl bir tarayıcı veya öğe kaydırma çubuğu devre dışı bırakmak, ama hala tekerleği veya ok tuşları ile kaydırma izin alabilir miyim?

div Benim ve benim bütün öğeleri herhangi bir kaydırma çubukları body, gizlemek ama hala kullanıcı fare tekerleği veya ok tuşları ile kaydırma izin vermek istiyorum. Nasıl bu raw JavaScript veya jQuery ile elde edilebilir? Herhangi bir fikir?

CEVAP
25 AĞUSTOS 2009, Salı


Önceki cevaplar gibi, overflow:hidden vücut/div üzerinde kaydırma çubukları devre dışı bırakmak için kullanın.

Sonra kaydırma taklit div scrollTop değiştirecek bir fonksiyon için mousewheel olayı bağlamak istiyorum.

Ok tuşları için ok tuşuna tanımak keydown olay bağlamak ve div scrollTop scrollLeft kaydırma taklit etmek için uygun şekilde değiştirin. (Not: IE için ok tuşları keypress tanımıyor beri keypress yerine keydown kullanın.)
Düzenleme:FF/Krom div keydown tanımak için alamadım, ama IE8 çalışır. Bunun için size gerekli olan ne bağlı olarak, document keydown bir dinleyici div kaydırmak için ayarlayabilirsiniz. (Örnek olarak keyCode referans göz atın.)

Örneğin, fare tekerleğini (jQuery ve fare tekerleği bir eklenti kullanarak) ile kaydırma:

<div id="example" style="width:300px;height:200px;overflow:hidden">
insert enough text to overflow div here
</div>

<script>
$("#example").bind("mousewheel",function(ev, delta) {
    var scrollTop = $(this).scrollTop();
    $(this).scrollTop(scrollTop-Math.round(delta));
});
</script>

(Bu hızlı bir maketi, bana numaralarını ayarlamak gerekiyor, bu biraz yavaş ilerler.)

keyCode reference
mousewheel plugin
keydown, keypress @ quirksmode

Güncelleme 12/19/2012:

Eklenti de fare tekeri güncel konumu: https://github.com/brandonaaron/jquery-mousewheel

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • CruzerLite

    CruzerLite

    1 EKİM 2011