2013-06-04 5 views
0

<div id="myButton">Home</div>에서 다른 div 지점의 중심으로 스크롤하는 방법을 찾고 있습니다. 이것의 목적은 4 페이지가 있고 그것들을 페이지 다음에 오는 탐색 막대 (중앙에 완벽하게 머물러 있음)로 서로 옆에 놓기를 원하기 때문입니다. 왜 작동하지 않습니까?scrollTo 함수를 사용하는 방법은 무엇입니까?

여기있는 내가 가지고 JSfiddle

$('div#myButton').click(function() { 
    $.scrollTo($('div#myDiv'), 500); 
}); 

:

<body> 

<div id="myButton">yo</div> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
..... 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<div id="myDiv">hello</div> 

<script> 

$("div#myButton").click(function() { 
$('html, body').animate({ 
    scrollTop: $("div#myDiv").offset().top }, 2000); 
}); 

</script> 


</body> 

를하지만 여전히 작동하지 않습니다!

+3

[jQuery에는 scrollTo 함수가 없습니다.] (http://jquery.com/?s=scrollto). [scrollTo plugin] (http://flesler.blogspot.com/2007/10/jqueryscrollto.html)을 언급하고 있습니까? – lanzz

답변

2

플러그인없이 수행 할 수 있습니다.

계획이 조금 변경되었습니다.

$("div#myButton").click(function() { 
    $('html, body').animate({ 
     scrollTop: $("div#myDiv").offset().top }, 2000); 
}); 
+0

x 방향이 아닌 y 방향 만? – maxmitch

+0

당신은 또한 scrollLeft –

+0

미안하지만 당신이 코드를 스크립트 태그에 넣는 것을 완전히 잊어 버렸습니까? 전에 다른 걸 넣어 줘야 해? – maxmitch

0

scrollTop을 스크롤 할 수 있습니다. otherDiv.offset().top이 사업부의 상단에 당신을 배치하고 otherDiv.height()/2을 추가하는 것은 사업부

$('div#myButton').click(function() { 
    var otherDiv = $('div#myDiv'); 
    $("html, body").scrollTop(otherDiv.offset().top + otherDiv.height()/2); 
}); 

Example on jsFiddle의 중심을 아래로 스크롤, 페이지의 상단 사업부

0

이을의 중심에 정확히 될 것입니다 jquery 함수가 아닌 javascript 함수이며 window.scroll과 같습니다.

window.scrollTo(x-coord, y-coord) 

x-coord는 왼쪽 상단에 표시 할 문서의 가로 축을 따르는 픽셀입니다.

y-coord는 왼쪽 상단에 표시 할 문서의 세로 축을 따르는 픽셀입니다.

출처 : https://developer.mozilla.org/en-US/docs/Web/API/window.scrollTo

0

는 여기에 '외부 자원'에서 플러그인 바이올린의 : http://jsfiddle.net/LKu6p/1/

귀하의 코드가 맞다 플러그인은 어떤 이유로로드되지 않습니다. 코드 영역에 있는지 확인하려면 코드 영역 <head>을 확인하고 파일 영역이 올바른지 여부를 확인하십시오.

그러나 Royi와 동의합니다. 플러그인없이이 작업을 수행 할 수 있다면 더 좋습니다.

관련 문제