热门关键字:
jquery > jquery教程 > jquery教程 > jQuery---钢琴案例 (按下1-9数字键,能触发对应的mouseenter事件)

jQuery---钢琴案例 (按下1-9数字键,能触发对应的mouseenter事件)

312
作者:管理员
发布时间:2020/2/11 20:52:48
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=767

(按下1-9数字键,能触发对应的mouseenter事件)

 

1. 结合之前的学习,主要内容,就是on注册keyup事件,函数里传入e, 用e.keyCode,来获取1-9的数字的范围。

如果所按的按键在49-57的范围里,就去触发mouseenter(or mouseleave)事件。

怎么触发呢?让.nav li的索引下标等于(code-49)

2. 设置节流阀

 

复制代码
      //弹起的时候,触发mouseleave事件 $(document).on("keyup", function (e) { // flag = true; // //获取到按下的键 var code = e.keyCode; if (code >= 49 && code <= 57) { //触发对应的li的mouseleave事件 $(".nav li").eq(code - 49).mouseleave();
        }
      });
复制代码

 

 

 

 

下面的代码是有bug的

复制代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: 0; padding: 0; list-style: none; } .nav { width: 900px; height: 60px; background-color: black; margin: 0 auto; } .nav li { width: 100px; height: 60px; /*border: 1px solid yellow;*/ float: left; position: relative; overflow: hidden; } .nav a { position: absolute; width: 100%; height: 100%; font-size: 24px; color: white; text-align: center; line-height: 60px; text-decoration: none; z-index: 2; } .nav span { position: absolute; width: 100%; height: 100%; background-color: yellow; top: 60px; } </style> <script src="../jquery-1.12.4.js"></script> <script> $(function () { //给li注册鼠标进入事件,让li下面的span top:0  播放音乐  $(".nav li").mouseenter(function () {
        $(this).children("span").stop().animate({ top: 0 }); //播放音乐 var idx = $(this).index();
        $(".nav audio").get(idx).load();
        $(".nav audio").get(idx).play();
      }).mouseleave(function () {
        $(this).children("span").stop().animate({ top: 60 });
      }); //节流阀  :按下的时候,触发,如果没弹起,不让触发下一次 //1. 定义一个flag var flag = true; //按下1-9这几个数字键,能触发对应的mouseenter事件  $(document).on("keydown", function (e) { if (flag) {
          flag = false; //获取到按下的键 var code = e.keyCode; if (code >= 49 && code <= 57) { //触发对应的li的mouseenter事件  $(".nav li").eq(code - 49).mouseenter(); // }  }
        };
      }); //弹起的时候,触发mouseleave事件  $(document).on("keyup", function (e) {
        flag = true; //获取到按下的键 var code = e.keyCode; if (code >= 49 && code <= 57) { //触发对应的li的mouseleave事件  $(".nav li").eq(code - 49).mouseleave();
        }
      });
    }); </script> </head> <body> <div class="nav"> <ul> <li> <a href="javascript:void(0);">导航1</a> <span></span> </li> <li><a href="javascript:void(0);">导航2</a><span></span></li> <li><a href="javascript:void(0);">导航3</a><span></span></li> <li><a href="javascript:void(0);">导航4</a><span></span></li> <li><a href="javascript:void(0);">导航5</a><span></span></li> <li><a href="javascript:void(0);">导航6</a><span></span></li> <li><a href="javascript:void(0);">导航7</a><span></span></li> <li><a href="javascript:void(0);">导航8</a><span></span></li> <li><a href="javascript:void(0);">导航9</a><span></span></li> </ul> <div> <audio src="mp3/1.ogg"></audio> <audio src="mp3/2.ogg"></audio> <audio src="mp3/3.ogg"></audio> <audio src="mp3/4.ogg"></audio> <audio src="mp3/5.ogg"></audio> <audio src="mp3/6.ogg"></audio> <audio src="mp3/7.ogg"></audio> <audio src="mp3/8.ogg"></audio> <audio src="mp3/9.ogg"></audio> </div> </div> </body> </html>
复制代码

 





如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:jquery
友荐云推荐