2010-02-24 18 views
14

Bir textarea:jQuery: yeni eklenen öğeyi göstermek için pencere görünüm alanını taşı

$('div#addnote-area').hide(); // hide the div 
$('a#addnote-link').click(function() { // click event listener on link 
    $('div#addnote-area').toggle(); // toggle the hidden div 
}); 

içeren bir div değiştiren doc hazır jQuery parçacığım var. Bağlantı tıklandığında geçiş iyi çalışıyor. Sorun şu ki, div#addnote-area tarayıcının mevcut görüntü alanının altındaysa, gösterildiğinde orada kalıyor. Kullanıcının imlecini, tekstütata ve tüm textarea'ya pencerede görülebilir olmasını istiyorum.

Click here to see an image http://i50.tinypic.com/5ousuv.png

cevap

4

atın scrollTo jQuery plugin. Bunu canlandırmak istiyorsanız, son kaydırma için milisaniye # sağlamak,

$.scrollTo('div#addnote-area'); 

Veya:

$.scrollTo('div#addnote-area', 500); 
+0

@Matt sayesinde hile yapar! Basit bir jQuery (olmayan eklenti) yolu olsaydı, ama onu alacağım. – k00k

1

jQuery en scrollTop da çalışır Sadece böyle bir şey yapabilirsiniz. gibi belirlemeyi deneyin:

$('#idOfElement').css('scrollTop', 10) 

Sen $(...).offset() kullanarak oldukça kolay yükseklik/genişlik alabilirsiniz.

49

scrollTo eklentisi

$(window).scrollTop($('div#addnote-area').offset().top) 

DÜZENLEME olmadan: Eh Eminim bu eski cevabı :) İşte

gelen çok puan almak bir bonus var, bu da hareketli olabilir.

Sadece animate() işlevini kullanın ve vücut etiketini hedefliyor:

$('body').animate({scrollTop:$('div#addnote-area').offset().top},500)

Stackoverflow üzerinde deneyin! müfettiş konsolunu açın ve çalıştırın

$('body').animate({scrollTop:$('#footer').offset().top},500)

+0

Animasyonlu çözüm, Firefox için değil, Chrome için çalışıyor gibi görünüyor (18.0.1). JS/jQuery ile çok keskin değilim, herkes bunun neden olabileceğini biliyor mu? –

+4

Hem vücut hem de html..' $ ('body, html') 'i canlandırmaya çalışın – Ben

İlgili konular