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


    钢琴案例

    (按下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>
  • 相关阅读:
    [Debug] A strange error encountered today in ROS
    实操 | 安装一台3D打印机
    实操 | Getting started with Baxter Research Robot ...
    学习笔记 | What is Monocular Vision?
    路线图 | Roadmap of SLAM Research
    路线图 | Road-map of Cracking the Coding Interview as a C++ Developer
    实操 | Implementing Cartographer ROS on TurtleBots
    实操 | Implementing Google's Open Source Slam "Cartographer" demos in ROS / rviz
    科技新闻 | Google's Open Source SLAM Library ---- Cartographer
    实操 | Implementing "slam_karto" package on a Freight robot
  • 原文地址:https://www.cnblogs.com/jane-panyiyun/p/12259588.html
Copyright © 2020-2023  润新知