• tab选项卡在鼠标经过时实现切换延迟


      偶然间在浏览网页时,发现这样的效果。当鼠标不经意间滑过tab时并不会切换,当鼠标停留在上面一段时候后才会切换。

      个人觉得用户体验不错,优点是1.当用户只是滑过标签,并不需要切换,而此时如果切换标签需要请求数据时,会避免不必要的异步请求;2.避免页面在用户不需要的时候切换跳动,影响用户体验。

      网上查阅了几个方法,发现下面的方法更简洁有效。整理下来,供以后参考。

      其中的重点是那段js代码:原理是,通过hover的时候设置定时器,延迟执行切换方法,离开时,清楚计时器。当hover的时间小于延迟时间时,会清楚计时器,不会执行切换方法。仅当停留时间大于延迟时间才会切换。这样能有效避免滑过tab触发切换事件。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script type="text/javascript" src="js/jquery.1.11.3.min.js"></script>
            <script>
                $(function() {
                    var t_li = $(".tab")
                    var c_li = $(".tab-content div")
                    t_li.hover(function() {
                        var i = t_li.index($(this));
    
                        function way() {
                            t_li.removeClass("cur").eq(i).addClass("cur");
                            c_li.hide().eq(i).show();
                        }
                        timer = setTimeout(way, 500);
                    }, function() {
                        clearTimeout(timer);
                    });
                });
            </script>
            <style>
                .head {
                    width: 300px;
                    height: 51px;
                    border: 1px dashed #ccc;
                }
                
                .tab {
                    width: 50%;
                    float: left;
                    line-height: 50px;
                    cursor: pointer;
                }
                
                .cur {
                    border-bottom: 2px solid red;
                }
            </style>
        </head>
        <body>
            <div style=" 300px;margin-left: 300px;" class="main">
                <div class="head">
                    <div class="tab cur">tab1</div>
                    <div class="tab">tab2</div>
                </div>
                <div class="tab-content">
                    <div>tab1的内容<br>tab1的内容<br>tab1的内容<br></div>
                    <div style="display: none;">tab2的内容<br>tab2的内容<br>tab2的内容<br></div>
                </div>
            </div>
        </body>
    
    </html>
  • 相关阅读:
    java开发中遇到的问题及解决方法(持续更新)
    java.lang.UnsatisfiedLinkError: no XXX in java.library.path
    JNI与JNA性能比较
    JNA—JNI终结者
    JNI的替代者—使用JNA访问Java外部功能接口
    iOS开发UI篇—多控制器和导航控制器简单介绍
    李洪强iOS开发-网络新闻获取数据思路回顾
    iOS开发UI篇—Date Picker和UITool Bar控件简单介绍
    iOS开发UI篇—程序启动原理和UIApplication
    iOS开发UI篇—常见的项目文件介绍
  • 原文地址:https://www.cnblogs.com/yueliangcl/p/6611108.html
Copyright © 2020-2023  润新知