zoukankan      html  css  js  c++  java
  • JavaScript+Css实现的鼠标悬停时动态翻滚的紫色菜单导航

    代码简介:

    鼠标悬停时动态翻滚的导航条,这个是使用JavaScript实现的,不过代码好像是从jQuery里摘出来的,有点像。

    代码内容:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>JavaScript+Css实现的鼠标悬停时动态翻滚的紫色菜单导航_网页代码站(www.webdm.cn)</title>
    <style type="text/css">
    .clear:after{content:"."; display:block; height:0; clear:both; visibility:hidden}.clear{display:inline-block}.clear{display:block}
    div#nav{height:32px; background:url(http://www.webdm.cn/images/20091111/YL29.jpg) repeat-x}
    div#nav ul{
           705px;
           list-style:none;
           margin-top: 0;
           margin-right: auto;
           margin-bottom: 0;
           margin-left: 0px;
    }
    div#nav ul li{
           float:left;
           height:32px;
           overflow:hidden;
           background-image: url(http://www.webdm.cn/images/20091111/YL30.jpg);
           background-repeat: repeat-y;
           background-position: right 0;
           padding-top: 0;
           padding-right: 1px;
           padding-bottom: 0;
           padding-left: 0px;
           font-family: Arial;
           font-size: 12px;
           line-height: 32px;
           font-weight: bold;
    }
    div#nav ul li a{
           float:left;
           height:100%;
            77px;
           background:url(http://www.webdm.cn/images/20091111/YL28.jpg) repeat-x;
           color:#fff;
           text-decoration:none;
           padding-top: 0;
           padding-right: 5px;
           padding-bottom: 0;
           padding-left: 5px;
           text-align:center;
    }
    div#nav ul li a.hover{
           clear:both;
           background-position:0 -32px;
            77px;
    }
    div#nav ul li.on a{
           background-position:0 -32px;
    }
    div#nav ul li.nobg{background:none}
    /* ]]> */
    </style>
    </head>
    <body>
    <div id="nav">
    <ul class="clear">
    <li><a href="#">网页代码站</a></li>
    <li><a href="#">网页特效</a></li>
    <li><a href="#">工具软件</a></li>
    <li><a href="#">源码下载</a></li>
    <li><a href="#">菜单导航</a></li>
    <li><a href="#">层和布局</a></li>
    <li><a href="#">论坛社区</a></li>
    <li><a href="#">广告联系</a></li>
    <li class="nobg"></li>
    </ul>
    </div>
    <script type="text/javascript"> 
    /* <![CDATA[ */
    function nav(c, config){
           this.config = config || {speed: 10, num: 2};
           this.container = (typeof(c)=="object") ? c : document.getElementById(c);
           this.lineHeight = this.container.offsetHeight;
           this.scrollTimeId = null;
           var _this = this;       
           this.__construct = function (){
                  var inner,el,href;
                  inner = _this.container.childNodes[0].innerHTML;
                  href = _this.container.childNodes[0].href;
                  el = document.createElement("a");
                  el.innerHTML = inner;
                  el.href = href;
                  el.className = 'hover';
                  _this.container.appendChild(el);
                  _this.container.onmouseover = function (){_this.start()};
                  _this.container.onmouseout  = function (){_this.end()};
           }();
           this.start = function (){
                  _this.clear();
                  _this.scrollTimeId = setTimeout(function(){_this.scrollUp();}, _this.config.speed);
           };
           this.end = function (){
                  _this.clear();
                  _this.scrollTimeId = setTimeout(function(){_this.scrollDown();}, _this.config.speed);
           };
           this.scrollUp = function (){
                  var c = _this.container;      
                  if(c.scrollTop >= _this.lineHeight){c.scrollTop = _this.lineHeight;return;}
                  c.scrollTop += _this.config.num;
                  _this.scrollTimeId = setTimeout(function(){_this.scrollUp();}, _this.config.speed);
           };
           this.scrollDown = function (){
                  var c = _this.container;
                  
                  if(c.scrollTop <= 0){c.scrollTop = 0;return;}
                  c.scrollTop -= _this.config.num;
                  _this.scrollTimeId = setTimeout(function(){_this.scrollDown();}, _this.config.speed);
           };
           this.clear = function (){clearTimeout(_this.scrollTimeId)};
    }
    (function(){
           var container = document.getElementById('nav');
           var el_li = container.getElementsByTagName('li');
           var arr = [];
           for( var i = 0; i < el_li.length; i++){
                  if(el_li[i].className == 'on') continue;
                  arr[i] = new nav(el_li[i], {speed: 10, num: 4});
           }
    })
    ();
    /* ]]> */
    </script>
    </body>
    </html>
    <br>
    <p><a href="http://www.webdm.cn">网页代码站</a> - 最专业的代码下载网站 - 致力为中国站长提供有质量的代码!</p>
    

    代码来自:http://www.webdm.cn/webcode/2c7e2d7a-56a9-44b4-9356-4bbb40689b16.html

  • 相关阅读:
    (转)Java垃圾回收机制
    ThreadPoolExecutor线程池参数说明
    深入Synchronized和java.util.concurrent.locks.Lock的区别详解
    java集合类说明及区别
    JAVA中堆栈和内存分配
    深入理解Java对象序列化
    Java 序列化Serializable
    transient在java中的作用
    let和const命令
    第9章 css3多列布局
  • 原文地址:https://www.cnblogs.com/webdm/p/2037371.html
Copyright © 2011-2022 走看看