鋼琴案例 (按下1-9數字鍵,能觸發對應的mouseenter事件) 1. 結合之前的學習,主要內容,就是on註冊keyup事件,函數里傳入e, 用e.keyCode,來獲取1-9的數字的範圍。 如果所按的按鍵在49-57的範圍里,就去觸發mouseenter(or mouseleave)事件。 怎 ...
鋼琴案例
(按下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>