에 집중할 수 있습니까 JavaScript focus () 함수를 사용합니까?
<div>
JavaScript focus()
기능 사용 에 집중할 수 있습니까?
나는이 <div>
태그를
<div id="tries">You have 3 tries left</div>
나는 <div>
다음을 사용 하여 위의 내용에 집중하려고합니다 .
document.getElementById('tries').focus();
그러나 작동하지 않습니다. 누군가가 뭔가를 제안 할 수 있습니까 ....?
window.location.hash = '#tries';
이것은 해당 요소로 스크롤하여 본질적으로 "초점"을 맞 춥니 다.
예-가능합니다. 그렇게하려면 tabindex를 할당해야합니다 ...
<div tabindex="0">Hello World</div>
tabindex가 0이면 "페이지의 자연 탭 순서로"태그가 배치됩니다. 숫자가 높을수록 특정 우선 순위가 부여됩니다. 여기서 1은 첫 번째, 2 초 등이됩니다.
tabindex에 -1을 부여하면 div는 사용자가 아닌 스크립트로만 초점을 맞출 수 있습니다.
document.getElementById('test').onclick = function () {
document.getElementById('scripted').focus();
};
div:focus {
background-color: Aqua;
}
<div>Element X (not focusable)</div>
<div tabindex="0">Element Y (user or script focusable)</div>
<div tabindex="-1" id="scripted">Element Z (script-only focusable)</div>
<div id="test">Set Focus To Element Z</div>
분명히 다른 입력 방법으로는 초점을 맞출 수없는 스크립트로 초점을 맞출 수있는 요소를 갖는 것은 부끄러운 일입니다 (특히 사용자가 키보드 만 있거나 유사하게 제한되어있는 경우). 기본적으로 초점을 맞추고 사용자를 돕기 위해 의미 정보가 구워진 표준 요소가 많이 있습니다. 이 지식을 현명하게 사용하십시오.
document.getElementById('tries').scrollIntoView()
공장. window.location.hash
위치를 고정했을 때보 다 더 효과적 입니다.
tabindex를 사용할 수 있습니다
<div tabindex="-1" id="tries"></div>
tabindex 값을 사용하면 흥미로운 동작을 수행 할 수 있습니다.
- 값이 "-1"인 경우 요소를 탭할 수 없지만 프로그래밍 방식으로 요소에 포커스를 줄 수 있습니다 (element.focus () 사용).
- 값이 0 인 경우 키보드를 통해 요소에 초점을 맞추고 문서의 탭 흐름에 해당합니다. 0보다 큰 값은 1이 가장 중요한 우선 순위 레벨을 작성합니다.
<div id="inner" tabindex="0">
this div can now have focus and receive keyboard events
</div>
Michael Shimmin과 같은 것을 제안하고 싶지만 요소 또는 CSS에 적용된 CSS와 같은 하드 코딩은 없습니다.
jQuery를 추가 / 제거 클래스로만 사용하고 있습니다 .jquery를 사용하지 않으려면 add / removeClass를 대체해야합니다.
-자바 스크립트
function highlight(el, durationMs) {
el = $(el);
el.addClass('highlighted');
setTimeout(function() {
el.removeClass('highlighted')
}, durationMs || 1000);
}
highlight(document.getElementById('tries'));
--CSS
#tries {
border: 1px solid gray;
}
#tries.highlighted {
border: 3px solid red;
}
테두리를 플래시하려면 다음을 수행하십시오.
function focusTries() {
document.getElementById('tries').style.border = 'solid 1px #ff0000;'
setTimeout ( clearBorder(), 1000 );
}
function clearBorder() {
document.getElementById('tries').style.border = '';
}
테두리가 1 초 동안 빨간색으로 바뀌고 다시 제거됩니다.
이 시도 -
$("html, body").stop().animate({ scrollTop: $("#inner").offset().top - 80 }, 1500, "easeInOutExpo"), e.preventDefault();
'IT story' 카테고리의 다른 글
Composer를 실행하면“입력 파일을 열 수 없습니다 : composer.phar” (0) | 2020.05.09 |
---|---|
Bash를 사용하여 텍스트 파일에 데이터를 열고 쓰시겠습니까? (0) | 2020.05.09 |
오른쪽에 4 개의 탐색 모음 항목 부트 스트랩 (0) | 2020.05.09 |
SQL에서 월 번호를 월 이름 함수로 변환 (0) | 2020.05.09 |
Android 기기의 GPS가 활성화되어 있는지 확인하는 방법 (0) | 2020.05.09 |