当前位置:编程学习 > JS >>

纵向拉伸变横向拉伸,Js动感伸缩菜单

纵向拉伸变横向拉伸,Js动感伸缩菜单,紧身排列的CSS菜单,可用在博客等重要的位置部分作菜单,学习JavaScript前端设计的也可以作为参考范例啦。
答案:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
        <title>有弹性的菜单</title>
        <style>
            *{ margin:0px; padding:0px;} body { background:#fff;} .naver{list-style-type:
            none; width:700px; overflow:hidden; margin:100px auto 0;} .naver li{ width:100px;
            height:50px; overflow:hidden; font-size:16px; text-align:center; cursor:
            pointer; } .naver li a,.naver li a:hover{display: block;width:100px; height:50px;
            line-height: 50px; color:#FFF; text-decoration: none; } .co1{ background:#649e37}
            .co2{ background:#028fbc}
        </style>
        <script type="text/javascript">
            window.onload = function() {
                var oUl = document.getElementById("nav");
                var aLi = oUl.getElementsByTagName("li");
                var i = 0;
                for (i = 0; i < aLi.length; i++) {
                    aLi[i].timer = null;
                    aLi[i].speed = 0;
                    aLi[i].onmouseover = function() {
                        startMove(this, 250);
                    };
                    aLi[i].onmouseout = function() {
                        startMove2(this, 100);
                    };
                }
            };
            function startMove(obj, iTarget) {
                if (obj.timer) {
                    clearInterval(obj.timer);
                }
                obj.timer = setInterval(function() {
                    doMove(obj, iTarget);
                }, 30)
            };
            function doMove(obj, iTarget) {
                obj.speed += 3;
                if (Math.abs(iTarget - obj.offsetWidth) < 1 && Math.abs(obj.speed) < 1) {
                    clearInterval(obj.timer);
                    obj.timer = null;
                }
                else {
                    if (obj.offsetWidth + obj.speed >= iTarget) {
                        obj.speed *= -0.7;
                        obj.style.width = iTarget + "px";
                    }
                    else {
                        obj.style.width = obj.offsetWidth + obj.speed + "px";
                    }
                }
            };
            function startMove2(obj, iTarget) {
                if (obj.timer) {
                    clearInterval(obj.timer);
                }
                obj.timer = setInterval(function() {
                    doMove2(obj, iTarget);
                }, 30)
            };
            function doMove2(obj, iTarget) {
                obj.speed -= 3;
                if (Math.abs(iTarget - obj.offsetWidth) < 1 && Math.abs(obj.speed) < 1) {
                    clearInterval(obj.timer);
                    obj.timer = null;
                }
                else {
                    if (obj.offsetWidth + obj.speed <= iTarget) {
                        obj.speed *= -0.7;
                        obj.style.width = iTarget + "px";
                    }
                    else {
                        obj.style.width = obj.offsetWidth + obj.speed + "px";
                    }
                }
            };
        </script>
    </head>
    
    <body>
        <ul id="nav" class="naver">
            <li class="co1">
                <a href="#">首页</a>
            </li>
            <li class="co2">
                <a href="#">爱好</a>
            </li>
            <li class="co1">
                <a href="#">作品</a>
            </li>
            <li class="co2">
                <a href="#">联系</a>
            </li>
            <li class="co1">
                <a href="#">博客</a>
            </li>
        </ul>
    </body>
</html>

上一个:CSS3实现漂亮Menu菜单代码
下一个:简单代码实现JS多级Select联动菜单

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,