2013-05-10 24 views
6

Taşma içeren bir div içindeki bağlantılar listem var. Olmak istediğim şey, kullanıcının bu bağlantı menüsünde bir yukarı ve aşağı düğmesiyle gezinebilmesidir. Kullanıcının ilgili butonu her tıkladığında div'in 1 link elemanının yüksekliği ile yukarı veya aşağı kaydırılmasını istiyorum. Bazı kodları denedim ancak her iki yönde de doğru miktarda kaydırmayı nasıl yapacağımı anlayamıyorum. Bana yardım eden var mı?jQuery scrollTop kullanarak ayarlanan piksel miktarını yukarı ve aşağı kaydırırTop

Tüm bağlantılar aynı sınıftadır.

Düzenleme: Zaten yukarı ve aşağı kaydırma başarmış

. Şimdi sadece 1 bağlantı yüksekliğinin küçük adımlarında ilerlemem gerek.

cevap

3

Geçerli kodunuzu kullanarak bu kadar kolay olmalı, yapmanız gereken tek şey tekrar tekrar kaymasını önlemek için aralıktan kurtulmaktır. Ardından, mouseleave işlevine de ihtiyacınız olmaz; kaydırma değişkenini, örneğin bir bağlantı etiketinin yüksekliğinin aynı değerine ayarlayabilirsiniz. Bir 20px yüksek link tag için 20:

$(function() { 

    var ele = $('#scroller'); 
    var scroll = 20; 

    $('.scroller-btn-up').click(function() { 
    // Scroll the element up  
    ele.scrollTop(ele.scrollTop() - scroll); 
    }); 

    $('.scroller-btn-down').click(function() { 
    // Scroll the element down 
    ele.scrollTop(ele.scrollTop() + scroll); 
    }); 

    $('.scroller-btn-up, .scroller-btn-down').bind({ 
    click: function(e) { 
     // Prevent the default click action 
     e.preventDefault(); 
    } 
    }); 

}); 
+1

Bunu daha güvenilir bağlantı yüksekliğini hesaplamak için ziyade kodlama sert bulabilir. Bazılarında metin sadece Firefox'ta yakınlaştırırsa, örneğin piksel cinsinden yazı tipi boyutu artar. Böyle bir şey. var kaydırma = $ ('# kaydırıcı a'). height(); –

+0

Yararlı yorum için teşekkürler ve teşekkürler! Şimdi yapmam gereken tek şey, kaydırma tepesini canlandırıyor. Bunu bu kodda nasıl yapabilirim? –

+0

Sadece 'ele.animate kullanın ({scrollTop: (ele.scrollTop() - scroll) + 'px'});' –

İlgili konular