如何调整这个jquery键盘导航以允许其他标签和键盘功能
How can one adjust this jquery keyboard navigation to allow other tags and keyboard functions?
我正在创建一个简单的网站,图像垂直向下运行的页面。我希望能够通过键盘箭头键平滑图像之间的滚动。通过这个论坛的帮助,我收到了以下建议(确实有效)。
示例:http://jsfiddle.net/aVvQF/5/
问题:如何使用方向键在页面上的对象之间平滑地上下滚动?
但是,我需要一些额外的功能。此设置防止所有键盘功能的默认操作。我只希望更改左箭头键和右箭头键的默认操作。我决定使用左右,而不是上下,这样标准的上下箭头导航和页面上下就不会受到影响。如何更改代码以允许使用除左箭头和右箭头以外的所有键?
同样,这种设置似乎只有在'img'标签之间没有其他标签时才有效。然而,我需要能够放置链接,文本和断行之间或周围的图像。如何调整代码以允许这种情况?或者,它会更好地把图像和必要的文本和链接每个在'div'类运行的页面(现在它都在一个'div'),然后有键盘导航之间的'div' ?
谢谢。
你应该像下面这样做,允许所有其他键,除了左方向键和右方向键在你的函数开始->
var keyCode = e.keyCode;
//return if it is not left/right arrow key
if (keyCode != 39 && keyCode != 37) {
return;
}
我修改了你的html和脚本一点,使其工作。查看我的方法jsFiddle在这里
next()和next([selector])的工作方式不同。前者next只是获取下一个兄弟元素,而后者则首先尝试获取匹配列表(在您的示例中为$('.active'),并从中选择下一个匹配元素(该元素为0)。
例如
<p class="selected active">Hello Again</p>
<span class="log" >Test</span>
<p class="selected">Hello Again</p>
<div><span>And Again</span></div>
这个$("p.selected.active").next('p.selected')
看起来像是要去取下一个选中的p,但它不是。在我看来,jQuery通过$("p.selected.active")
迭代找到匹配的'p.selected',这将返回空。
我使用.next()并添加了一个where子句来查找兄弟元素中的下一个img标签,
$targetElement = $('.active').next();
while ($targetElement.length != 0 && $targetElement.hasClass('img') == false) {
$targetElement = $targetElement.next();
}
我希望它有帮助
编辑:检查这里。
- 添加isAnimating标志,以避免滥发keydown。
- 修改css
.active img{ border: 2px dotted red; }
. - 稍微修改了一下html
如何更改代码以允许使用除左箭头和右箭头以外的所有键?
只有当左/右键匹配时才调用e.preventDefault();
如何调整代码以允许这种情况?
您应该能够用容器div包围每组数据,并更改代码以查找div而不是图像。
示例:http://jsfiddle.net/KnKC9/1/
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 除修剪外的其他功能
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Array.length似乎不起作用;console.log则显示其他情况
- 如何消除代码中的未定义和其他问题
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- Jquery未定义函数正在停止其他操作
- 如何将我的javascript库公开给其他客户端使用
- Javascript阻止其他Javascript代码
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- 如何“;过滤器”;或者以其他方式重构该数据
- 如何调整这个jquery键盘导航以允许其他标签和键盘功能
- 如何在某些区域用JS捕获键盘箭头,而不是其他区域
- 用javascript连接midi键盘或其他实时midi输入