導航菜單底部滑動條跟隨效果


網上昨天學了一個導航條效果  今天手動實現了一下  開心。。。

翠花,上效果圖!

實現代碼如下(思路見代碼):

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>navdemo1</title>
    <style>
        /*
           1.位置屬性(position, top, right, z-index, display, float等) 
           2.大小(width, height, padding, margin) 
           3.文字系列(font, line-height, letter-spacing, color- text-align等) 
           4.背景(background, border等)
           5.其他(animation, transition等) 
            */
        * {
            padding: 0;
            margin: 0;
            font-family: 'Microsoft YaHei';
        }
        a{text-decoration:none;}
        li{list-style:none;}

        .nav-wrap{position:relative;background-color:#000;}
        .nav-wrap .nav{width:1000px;margin:0 auto; overflow:hidden;}
        .nav-wrap .nav li{float:left;}
        .nav-wrap .nav li a{display:block; height:50px;padding:0 50px;line-height:50px;color:#fff;transition:background-color 0.3s linear;}
        .nav-wrap .nav li a:hover,.nav-wrap .nav li a.active{background-color:#484646;}
        .nav-wrap .line{display:block;position:absolute;bottom:0;width:50px;height:2px;background-color:#ff6a00;}
    </style>
    <script src="~/Scripts/jquery-1.8.2.js"></script>
    <script src="~/Scripts/jquery.easing.1.3.js"></script>
    <script>
        $(function () {
            navdeal();
        });
        //導航條效果處理
        //思路:
        //1.下滑條絕對定位到導航條模塊的底部 
        //2.js控制下滑條 寬度=當前菜單項的寬度  左邊距=當前菜單項相對父元素(.nav-wrap)的左偏移 
        //3.加上easing.js中的彈性效果
        var navdeal = function () {
            var $item_active = $('.nav-wrap .nav li a.active');
            var $nav_line = $('.nav-wrap .line');
            var item_width = $item_active.outerWidth();
            var item_position_left = $item_active.position().left;

            $nav_line.css({ 'width': item_width, 'margin-left': item_position_left });
            
            //菜單項鼠標移入,移出事件綁定
            $('.nav-wrap .nav li a').bind({
                mouseover: function () {
                    var item_width = $(this).outerWidth();
                    var item_position_left = $(this).position().left;

                    $nav_line.stop().animate({ 'width': item_width, 'margin-left': item_position_left }, 800, 'easeOutBounce');
                },
                mouseout: function () {
                    $nav_line.stop().animate({ 'width': item_width, 'margin-left': item_position_left }, 800, 'easeOutBounce');
                }
            });
        }
    </script>
</head>
<body>
    <div class="nav-wrap">
        <ul class="nav">
            <li><a href="#" class="active">首頁</a></li>
            <li><a href="#">我的訂單</a></li>
            <li><a href="#">我的購物車</a></li>
            <li><a href="#">退出</a></li>
        </ul>
        <span class="line"></span>
    </div>
</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM