首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用纯css3的键盘导航

使用纯css3的键盘导航
EN

Stack Overflow用户
提问于 2012-06-23 02:38:31
回答 1查看 2K关注 0票数 3

有没有办法在没有js或任何js库的情况下,只用css3就能给链接添加键盘导航?具体地说,我用一堆图片创建了一个纯css3 lightbox效果,但我想使用左右键在图片之间导航,而不需要单击屏幕上的任何地方,并使用escape获得“取消”按钮的效果(类似于关闭)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-23 19:13:19

你所要求的在级联样式表中几乎是不可能的,你可以为你的时序设置动画,或者用CSS做动画,过渡,但是你不能只用CSS做你想做的事情!

原因

  1. 级联样式表是用来制作页面的视觉元素的,而不是UX
  2. Css没有与键盘交互的方法。

你可以添加一点javascript来实现这一点。但是当你不想使用javascript时,你就被卡住了!

复选框hack

使用复选框单选框可以实现这样的效果,但再次强调了最初需要实现的焦点。这可以使用自动聚焦属性来完成。

所以这把小提琴应该能解决你的问题。

http://jsfiddle.net/darkyen/NUtnX/

但我想在此之前警告你,任何“模糊”都会导致这个失败。因此下面列出了更好的javascript代码变体

JavaScript代码

用于实现所需内容javascript代码将包含非常少的javascript比如您的标记是

因此您可以简单地分配一个lil javascript

代码语言:javascript
复制
(function(){
 var slide = 0,  // Current slide 
     max   = 10, // Maximum Number of slides
 ele = document.getElementById("show");
     document.addEventListener('keydown',function(e){
          e.preventDefault();
          e.stopPropagation(); // To stop more event stuff and default behaviour
          key = e.keyCode; // To find out what key is this 
          if( key === 39 ){
              // Right arrow 
              // Aha we incremented the value!
              slide++;
              slide %= (max+1);
              // Increase the value of slide by 1 and keep em in limits
          }else if( key === 37){
              slide = (--slide >= 0)?slide: ( slide + max );
              // Will decrement the slide value by 1 and if they are less then 0 then   will cycle it to the last slide 
          }  

          ele.className.replace(/slide[0-9]/gi,'slide'+slide);                 
          // wasn't hard now was it ?     
     });
 })();

上面的最小javascript将完成更改幻灯片的任务,或者您可以始终看到impress.js的源代码

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11162202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档