zoukankan      html  css  js  c++  java
  • 碰撞缓冲效果的导航条 js

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>碰撞缓冲效果的导航条</title>
    <style type="text/css">
    * { padding: 0; margin: 0; }
    li { list-style: none; }
    body { background: #fff; }
    ul { 202px; margin: 40px auto 0; position: relative; }
    li { 200px; height: 30px; line-height: 30px; padding-left: 10px; border: 1px solid #ccc; border-left: 3px solid #666; font-size: 14px; color: #333; margin-bottom: 5px; position: relative; z-index: 2; }
    a { color: #333; text-decoration: none; }
    .active { font-weight: bold; background: #fff0f0; }
    #bar { 10px; padding-left: 0; background: #cc6699; border: 1px solid #cc6699; position: absolute; top: 0; left: -14px; z-index: 3; }
    </style>
    <script type="text/javascript">
        var obj = null;
        var aLis = null;
        var oBar = null;
        var iTime = null;
        var iSpeed = 0;
        var iAcc = 3;
        var onOff = 0;
        var iPrev = 0;
        var iNext = 0;
        function goTime() {
            for (var i = 0; i < aLis.length; i += 1) {
                if (aLis[i] === this) {
                    var iTarget = (aLis[0].offsetHeight + 5) * i;
                    iNext = i;
                    onOff = iNext - iPrev;
                    if (iTime) {
                        clearInterval(iTime);
                    }
                    if (onOff >= 0) {
                        iTime = setInterval("elasticity(" + iTarget + ")", 35);
                    }
                    else {
                        iTime = setInterval("postpone(" + iTarget + ")", 35);
                    }
                    iPrev = iNext;
                }
                aLis[i].className = "";
                this.className = "active";
            }
        }
        function elasticity(target) {
            var top = oBar.offsetTop;
            iSpeed += iAcc;
            top += iSpeed;
            if (top >= target) {
                iSpeed *= -0.7;
                if (Math.abs(iSpeed) <= iAcc) {
                    clearInterval(iTime);
                    iTime = null;
                }
                top = target;
            }
            oBar.style.top = top + "px";
        }
        function postpone(target) {
            if (oBar.offsetTop === target) {
                clearInterval(iTime);
                iTime = null;
            }
            else {
                iSpeed = (target - oBar.offsetTop) / 4;
                oBar.style.top = oBar.offsetTop + iSpeed + "px";
            }
        }
        window.onload = function () {
            obj = document.getElementById("nav");
            aLis = obj.getElementsByTagName("li");
            oBar = document.getElementById("bar");
            for (var i = 0; i < aLis.length; i += 1) {
                if (aLis[i].id != "bar") {
                    aLis[i].onmouseover = goTime;
                }
            }
        };
    </script>
    </head>
    <body>
    <ul id="nav">
    <li class="active"><a href="#">首页</a></li>
    <li><a href="/">烈火学院</a></li>
    <li><a href="/">妙味课程</a></li>
    <li><a href="/">联系方式</a></li>
    <li id="bar"></li>
    </ul>
    </body>
    </html>

    转载原文:http://www.veryhuo.com/a/view/31222.html

  • 相关阅读:
    oracle闪回某个时间段的数据
    查询某个表某个字段重复记录急重复数量
    调用腾讯QQ启动
    MongoDB笔记(二):MongoDB下Shell的基本操作
    MongoDB笔记(一):MongoDB介绍及Windows下安装
    freemarker相关
    oracle获取时间毫秒数
    如何简单地理解Python中的if __name__ == '__main__'
    python套接字基本使用
    Mysql表的约束设计和关联关系设计
  • 原文地址:https://www.cnblogs.com/lizihong/p/4012712.html
Copyright © 2011-2022 走看看