2010-07-15 25 views
10

Sabit yükseklik ve genişliğe sahip bir div'um varsa, tuşa basarken (veya tuş/tuşla) hareket ediyorum. Pencereyi bu div 'u "takip etmek" için alabilir miyim?jQuery - Bir divayı klavye ile hareket ettiriyorsam

Bir sayfayı otomatik olarak tarayabileceğinizi biliyorum, ancak bir div koordinatlarını alabilir ve sayfayı div olarak kaydırır mısınız?

+0

http://flesler.blogspot.com/2007/10/jqueryscrollto.html'yi gördünüz mü? – Adam

+0

Ah, hayır - Ben bir eklenti kullanmak yerine kendimi kodlamak istedim. –

+0

IE6 desteği bırakabilir misiniz? :) – Anurag

cevap

1

Bir javascript çerçevesi kullanıyor musunuz? jQuery kullanıyorsanız kullandığınız div konumunu elde edebilirsiniz:

jQuery('#yourdiv').position().top() 
jQuery('#yourdiv').position().left() 

Ayrıca, jQuery kullanıyorsanız, pencere otomatik olarak sizden başka çalışma ile yine görünümünde Div tutmak için kayar. .

Sen jQuery ('body') kullanabilirsiniz animasyon: Yorum yanıt olarak

({scrollTop: xPosOfDiv});

+0

Ah, mükemmel - sayfayı bu konuma kaydırmanın bir yolu var mıydı? Ben sanırım .scroll() aslında ... –

+1

Hiçbir suç, ama başlık ve etiketleri JQuery kullandığını belirtiyor. ;) – Bobby

+0

Nevermind - GOT IT! Şerefe! - 6 dakika içinde kabul ediyorum –

0
var pos = $("#theDiv").position(); 
window.scrollTo(pos.left, pos.top); 
+0

'scrollTo', scrollTo eklentisini gerektirir: http://plugins.jquery.com/project/ScrollTo – kingjeffrey

+1

@kingjeffey Hayır, hiçbir eklenti kullanmıyorum. Yerel Javascript yöntemini kullanıyorum: https://developer.mozilla.org/en/DOM/window.scrollTo –

1

bir yolu:

$(document.body).bind('keydown', function(){ 
    $('#somediv')[0].scrollIntoView(true); 
}); 

bir başka yolu:

$(document.body).bind('keydown', function(){ 
    $('#somediv').css('top', $(window).scrollTop() + 'px'); 
}); 

Pürüzsüz yol:

$(document.body).bind('keydown', function(){ 
    $('#somediv').animate({'top': $(window).scrollTop() + 'px'}, 1000); 
}); 
+0

Bunu önermek için çok fazla teklif edecekti - sadece IE6/7 işleyicisinin kafasını karıştıracağı scrollIntoView' ve düzeni bozar. Ancak kesinlikle * çoğu zaman * çalışır. – Pointy

İlgili konular