2010-07-15 5 views
10

div와 고정 너비가있는 경우 키 누르기 (또는 keydown/keyup)를 사용하여 이동합니다. 창을 "따라 오게"할 수 있습니까?jQuery - 키보드로 div를 움직이는 경우

페이지를 자동 스크롤 할 수 있지만 div의 좌표를 가져 와서 div가 이동하면 페이지를 스크롤 할 수 있는지 알고 있습니다.

+0

http://flesler.blogspot.com/2007/10/jqueryscrollto.html을 보셨습니까? – Adam

+0

아, 아니, 아니야. 나는 플러그인을 사용하기보다는 직접 코드화하고 싶다. –

+0

IE6에 대한 지원을 중단 할 수 있습니까? :) – Anurag

답변

1

당신은 자바 스크립트 프레임 워크를 사용하고 있습니까? 당신이 jQuery를 사용하는 경우 사용하여 사업부의 위치를 ​​얻을 수 있습니다 :

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

을 또한, 당신이 jQuery를 사용하는 경우, 창이 자동에서 더 이상의 작업으로 어쨌든보기에서 사업부를 유지하기 위해 스크롤됩니다. .

당신은 jQuery를 ('몸')를 사용할 수 있습니다 애니메이션 : 귀하의 코멘트에 대한 응답으로

({scrollTop : xPosOfDiv});

+0

아, 훌륭합니다 - 그 위치로 페이지를 스크롤하는 방법이 있을까요? 나는 실제로 .scroll()이 될 것이라고 의심한다. –

+1

불쾌감은 없지만, 제목과 태그는 JQuery를 사용한다고 언급하고있다. ;) – Bobby

+0

Nevermind - 알았어요! 건배! - 병이 6 분 안에 받아 들여집니다. –

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

'scrollTo'은 scrollTo 플러그인이 필요합니다. http://plugins.jquery.com/project/ScrollTo – kingjeffrey

+1

@kingjeffey 아니요, 플러그인을 사용하고 있지 않습니다. 나는 native Javascript 메서드를 사용하고있다 : https://developer.mozilla.org/en/DOM/window.scrollTo –

1

한 가지 방법 :

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

또 다른 방법 :

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

부드러운 방법 :

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

이것 역시 제안 할 것이지만,주의해야 할 것은 IE6/7 렌더러가 때때로 혼란스러워한다는 것이다. 'scrollIntoView' 그리고 레이아웃을 깨뜨린 다. 그러나 그것은 확실히 시간의 대부분 * 작동합니다. – Pointy

관련 문제