zoukankan      html  css  js  c++  java
  • jquery实现导航启用数字键盘监听效果

    今天写一个案例:就是导航可以用数字键盘来监听,也就是点击数字键盘相应的导航触发并且出现相应的样式。来看代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            *{margin:0;padding:0;}
            ul,li{list-style: none}
            .nav{overflow: hidden;margin:30px auto;height:60px;width:600px;}
            .nav li{float:left;width:100px;text-align:center;height:60px;line-height:60px;background-color: #00c87a;position: relative}
            .nav li a{color:#fff;position:absolute;left:0;width:100%;height:100%;text-decoration: none;z-index: 100}
            .nav li span{width:100%;height:100%;position:absolute;left:0;top:60px;background-color: #ff8703;z-index: 10}
        </style>
    </head>
    <body>
        <ul class="nav">
            <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>
        </ul>
    </body>
    <script src="js/jquery-1.11.3.min.js"></script>
    <script>
        $(function(){
           $(".nav li").on("mouseenter",function(){
                $(this).children("span").stop().animate({top:0})
            }).on("mouseleave",function(){
                $(this).children("span").stop().animate({top:60})
            });
            //启用数字键触发mouseenter事件,离开触发mouseleave事件
            //bug:按下键盘不弹起,一直在触发,解决不让触发下一次的问题就是增加节流阀,即设置一个开关,键盘按下去让其为false;弹起为true
            var flag=true;
            $(document).on("keydown",function(e){
                if(flag){
                    flag=false;
                    var code = e.keyCode;//获取键盘的code码
                    if(code>=49 && code<=54){//数字键盘1~6的code是49~54
                        $(".nav li").eq(code-49).mouseenter();
                    }
                }
    
            });
            $(document).on("keyup",function(e){
                flag=true;
                var code = e.keyCode;
                if(code>=49 && code<=54){
                    $(".nav li").eq(code-49).mouseleave();
                }
            })
        })
    </script>
    </html>

    当点击数字键盘3时候效果图如下:

     

  • 相关阅读:
    ORA-04091错误原因与解决方法
    Vue中过滤器及自定义插件
    解决 React 中的 input 输入框在中文输入法下的 bug
    总结18个webpack插件
    使用Vue Composition API写出清晰、可扩展的表单
    实现微前端需要了解的 Vue Genesis 渲染器
    React 监听页面滚动,界面动态显示
    漫谈受控与非受控组件
    vue的完整版和运行时版的区别
    vue中利用provide和inject实现页面刷新(无白屏)重载组件
  • 原文地址:https://www.cnblogs.com/web001/p/8476026.html
Copyright © 2011-2022 走看看