使用方向键在输入框矩阵中自然的导航

键盘导航网页输入框

 关于使用键盘来在Web页的输入框中导航这个事我一周前就说了,今天才把它整理完,真是不好意思。不过整理后的代码结构清晰、使用方便、价格公道、童叟无欺。
    主要的核心技术就是两个,一个是:使用TextRange获取输入框中光标的位置,另一个是:为Web页中的TABLE对象创建一个映射表。其中获取输入框中的光标位置,是为了使用户在输入框间切换时,还能在同一个输入框中继续使用上下左右键移动光标,否这一但使用方向键就切换回很难与使用的。建立Table的映射表是为了解决查找当前输入框的切换目标输入框。
    由于昨天介绍了Mapping的方法,所以获取sibling的输入框就变的非常的简单,代码为:

ContractedBlock.gif < script  language ="javascript" > dot.gif script>

    由于up和down,left和right其实是相同的搜索代码,所以使用一个incV和incH把它们合并成了一段代码。如果在被查询单元格的同列或同行上没有别的输入框,那么siblingCell返回null。
    由于使用了Table的Mapping结果后,键盘的处理反而比查询sibling cell还复杂那么一点点了,处理代码如下:

ContractedBlock.gif< script  language="javascript"> dot.gif script>
    麻烦的地方是,需要区别对待INPUT和TEXTAREA这两个输入框元素。对于INPUT的处理很简单,UP和DOWN直接就执行跳离,LEFT的时候看看光标POSITION是否为0,RIGHT的时候看看是否为input.value.length。而TEXTAREA的LEFT和RIGHT和INPUT的处理是一样的,但是它的UP和DOWN为了让用户用起来比较的自然,加入了一个 KeyNavigation.PreviousCursorPosition,用来记忆上一次的按键时TEXTAREA里的光标位置,当响应UP和DOWN的时候,如果光标不在输入框TEXTAREA的两头(0和input.value.length),那么需要KeyNavigation.PreviousCursorPosition==iPsn才执行跳离操作。
    说了半天不明白,自己试试Navigate的效果就知道了emsmile.gif。    
   
text
text
texttexttext textsdaf
texttext
texttext textsdaftext
text
text
texttext
text
texttext textsdaftext
texttext textsdaf asdfsdfsdf
text

    操作体验还算自然吧emwink.gif


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值