내 jquery 아코디언을 통해 내가 원하는 것을 수행하는 데 약간 문제가 발생했습니다.jQuery 아코디언, 클릭 한 탭의 맨 위까지의 스크롤 시작 확장 된 탭이 클릭 된 것보다 위에 있으면 작동하지 않습니까?
항상 클릭되는 탭이 페이지 위쪽의 고정 된 크기의 픽셀로 스크롤되도록하고 싶습니다. 그러나 활성 탭이 클릭 된 탭 위에있을 때마다 페이지가 이미 약간 아래로 스크롤되면 클릭 된 탭의 내용의 상단과 부분이 페이지 상단을지나 위로 스크롤됩니다.
이
내가 무엇을 가지고 있습니다 : 여기$(function() {
$("#accordion").accordion({
autoHeight: false,
collapsible: true,
heightStyle: "content",
active: 0,
animate: 300
});
$('#accordion h3').bind('click',function(){
theOffset = $(this).offset();
$('body,html').animate({
scrollTop: theOffset.top - 100
});
});
});
내 문제를 설명하기 위해 fiddle있어,
예를 들어, "2 장"확장은, 아래로 스크롤하고 "3 장"탭이과 모든 스크롤 페이지 떨어져, 다른 방법은 주위에 비록 작동합니다.
새 탭을 열기 전에 활성 탭을 닫으면 정상적으로 스크롤 할 수있는 탭이 무너져 내리는 높이가 있다고 가정합니다.
누군가 도움을 줄 수 있기를 바랍니다. 아마도 나는 잘못된 방향으로 접근합니다. 나는 jquery 스킬이 기본적인 컷 앤드 페이스트 이해로 제한되어 있기 때문에 실제로 어떤 일을하는지 모릅니다. ^^
미리 감사드립니다. 그리고 모든 도움과 조언을 해주실 곳이 있습니다. :)
건배
예! : D 고마워요, 실제 스크롤 이벤트를 지연 시키려고했으나 행운은 없었지만 작동합니다! 우수한! – Andreas
잘 작동합니다! 내 유일한 질문은 왜'var self = this;'를 할 것인가? 나는'var theOffset = $ (this) .offset(); '을 사용하여 그것을 시도하고 그것은 작동하지 않았다. 왜 그런가? – Technotronic
@Technotronic - setTimeout 콜백 내의'this '값이 외부 값이 아니기 때문에. – techfoobar