4

有没有办法在没有 js 或任何 js 库的情况下仅使用 css3 将键盘导航添加到链接?具体来说,我用一堆图像创建了一个纯 css3 灯箱效果,但我想使用左右键在图像之间导航而不点击屏幕上的任何位置,并使用转义来获得“取消”按钮的效果(类似于关闭)

4

1 回答 1

4

您所要求的对于级联样式表实际上是不可能的,您可以为时序设置动画或使用 CSS 进行动画、过渡等操作,但您无法仅使用 CSS 完成您想做的事情!

原因

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

您可以添加一点 javascript 来实现这一点。但是因为你不想使用 javascript 你被卡住了!

复选框黑客

使用复选框单选框可以实现类似这样的功能,但最初需要再次关注焦点。这可以使用自动对焦属性来完成..

所以这个小提琴应该可以解决你的问题。

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

但我想事先警告你任何“模糊”都会导致失败。所以下面列出了更好的javascript代码变体

JavaScript 代码

实现你想要的 javascript 代码将包含非常少的 javascript 说你的标记是

所以你可以简单地分配一个 lil 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的源代码

于 2012-06-23T11:13:19.273 回答