저는 '$.scrollTo'이라는 작은 라이브러리를 사용하여 HTML에서 div 요소에 대한 스크롤을 움직입니다. 내 페이지 상단에는 고정 된 탐색 막대가 있습니다. 애니메이션이 끝나면 해당 div에 초점을 맞추고 싶습니다 (접근성 향상을 위해). 내 div가 큰 경우, 애니메이션이 끝나면 초점이 맞춰집니다. 단순히 화면에서 약간 벗어납니다.Javascript는 고정 된 머리글로 큰 div에 초점을 맞추고 있습니다.
작은 div에서는 발생하지 않습니다. 여기
$('#buttonid').on("click", function() {
//fixed nav bar height (to compensate when scrolling)
var fixed_navbar_height = $("#navbar-id").height();
//the element to scroll to
var $go_to_selector = $("#topic2");
$.scrollTo($go_to_selector, {
duration: 1000,
offset: -fixed_navbar_height,
onAfter: function() {
//if you comment out this .focus it works as intended.
$go_to_selector.focus();
}
});
});
가 JSFIDDLE 예는 다음과 같습니다 : 여기
내 코드 (아래 jsfiddle 확인)입니다
https://jsfiddle.net/dy35obpq/3/
분명히 onAfter 그것을 망쳐 놨지만, 나는 애니메이션과 초점을 모두 싶습니다 . 스크롤 막대를 변경하지 않고 큰 div에 포커스를 구현하는 방법에 대한 아이디어가 있습니까? 제안은 환영보다.
'화면에서 꺼내'라고 말하면 어떻게됩니까? – phreakv6
포커스는 내 화면 상단에있는 div를 무시하는 고정 헤더 바로 아래에 배치합니다. JSFIDDLE을 확인하고 포커스 라인을 주석으로 처리하여 작동 방법을 확인하십시오. – ponyboil
JSFiddle에서 나를 전혀 스크롤하지 않습니다 ... – Danmoreng