これにはjavascriptコードを追加する必要があります。 JQueryは仕事のための適切なツールになるようです。
$(function() {
var allowKeypressNavigation = true;
var $body = $('body');
var $activeSection = $('#main');
//set active section
function setPrevSectionActive() {
if($activeSection.is(':first-child')) {
$activeSection = $activeSection.siblings().last();
} else {
$activeSection = $activeSection.prev();
}
}
function setNextSectionActive() {
if($activeSection.is(':last-child')) {
$activeSection = $activeSection.siblings().first();
} else {
$activeSection = $activeSection.next();
}
}
//scroll to active section
function scrollToActiveSection() {
var location = $activeSection.offset().top;
$body.scrollTop(location);
}
//disable keyboard navigation when input in focus
$('input').on("focus", function(e){
allowKeypressNavigation = false;
}).on("blur", function(e){
allowKeypressNavigation = true;
});
//assing event to document
$(document).on("keydown", function(e){
if(allowKeypressNavigation) {
var keyCode = e.keyCode;
if(keyCode==38) {
//UP pressed
setPrevSectionActive();
scrollToActiveSection();
} else if(keyCode==40) {
//DOWN pressed
setNextSectionActive();
scrollToActiveSection();
}
}
});
});
私はこれにworking example on plunkerを追加しました。
私はあなたが 'tabindex'でこれを行うことができますが、矢印キーではできないことを知っています。おそらく、 '' onkeypress''/'' keypressup''イベントリスナーを使うのでしょうか? – Crowes