在html中只用div写导航栏怎么写,html – 如何在div之间实现箭头键导航

我认为你需要javascript并使用插件是一种更简单的方法来完成任务和维护跨浏览器功能.但是,这里有一个

fiddle,我认为,只需使用javascript即可.它定义了select元素的附加属性,并使用onkeydown函数来处理元素之间的导航.

function keyPressed(e) {

var srcElement = e.target; // get the element that fired the onkeydown function

var dataset = false;

var selectList = false;

var next = "";

var prev = "";

if (srcElement.dataset) { // can we use HTML5 dataset?

dataset = true; // remember for later

// is this an element for which we care

if (srcElement.dataset.selectlist == 'true') {

selectList = true;

}

} else { // can't use HTML5 dataset, use getAttribute

if (srcElement.getAttribute('data-selectlist') == 'true') {

selectList = true;

}

}

// is it a select element and the user pressed either up arrow or down arrow

if (selectList && (e.keyCode == '38' || e.keyCode == '40')) {

// get the next and prev navigation options for this element

if (dataset) {

next = srcElement.dataset.next;

prev = srcElement.dataset.prev;

} else {

next = srcElement.getAttribute('data-next');

prev = srcElement.getAttribute('data-prev');

}

// up arrow was pressed and a prev element is defined

if (e.keyCode == '38' && prev != '') {

document.getElementById(prev).focus();

}

// down arrow was pressed and a next element is defined

if (e.keyCode == '40' && next != '') {

document.getElementById(next).focus();

}

// don't do native processing of the up or down arrow (page scrolling)

e.preventDefault;

}

}

document.onkeydown = keyPressed;

这是包含其他元素的新html:

Option 1

Option 2

此代码非常特定于所提出的问题,虽然它可以解决问题,但使用通用插件可能会更好,这样可以在整个环境中实现更广泛的应用.您可能还会遇到与用户期望向下和向上箭头键相关的问题以及通过拦截它们所做的事情相关的问题.

根据我的经验,我遇到了一些问题,其中不同的浏览器甚至不同的最终用户平台对应用程序呈现不同的行为,使得实现一致性不稳定.许多插件旨在消除这种不一致性,并提供更清晰,更直观的界面.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值