주제와 항목이있는 메뉴를 작성 중입니다. 각 주제는 클릭하여 펼치거나 접을 수 있습니다. 내 임무는 위쪽 및 아래쪽 화살표 키를 사용하여 메뉴 항목 및 항목을 이동할 수 있도록하는 것입니다. 나는 이미 이것을했지만 문제는 페이지가 창보다 크면 화살표 키를 누를 때 페이지가 스크롤된다는 것입니다. 나는 시도했다 :화살표 키로 FF에서 페이지 스크롤을 비활성화하는 방법
document.body.style.overflow = "hidden";
스크롤에서 페이지를 중지하려면. 따라서 'Topic2'를 클릭하면 예를 들어 화살표 키를 사용하여 다음 주제/항목으로 이동할 수 있습니다. 그 후 화면의 아무 곳이나 클릭하면 자동으로 오버플로를 설정하고 페이지를 다시 스크롤 할 수 있습니다.
IE에서는 작동하지만 FF에서는 작동하지 않습니다. FF에서는 스크롤 막대가 제거되고 마우스 휠은 페이지를 스크롤하지 않지만 화살표 키는 여전히 수행합니다. 그래서 내 질문에, 어떻게 해결할 것입니다 또는 더 나은, 어떤 메뉴 요소에 포커스가있을 때 페이지를 스크롤하지 않는 방법? 따라서 오버 플로우 속성을 사용하지 않을 것입니다.
안녕하세요 타투를 해결했다! 그것은 효과가있다! 첫눈에 나는 그것이 (심지어 내 메뉴에 대한) 화살표 키를 모두 차단할 것이라고 생각했지만, menu.So에 대한 onkeyup 이벤트를 사용하여 모든 지금은 괜찮아요 ... 나는 단지 IE도 조정해야합니다 :) Pekka에게도 감사드립니다! 최고입니다. ps : 나는 해결책을 찾기 위해 얼마나 많은 시간을 보냈는지 믿을 수 없다. 그리고 마침내 너무 단순했다. :) – Chavdar
@Chavdar, 답을 표시하는 것을 잊지 마라. 그래서 다른 사람들은 더 이상 귀찮게 할 필요가 없다. 그리고 메뉴에서 이벤트를 결합하여 좀 더 단순하게 만들 수 있습니다 (메뉴에서 항목을 수행 한 다음 키가 화살표 인 경우 false를 반환하지만 onkeydown 이벤트에 바인딩해야 함). –
감사합니다. Tatu, 답변이 표시되었습니다. – Chavdar