JS+CSS實現滑鼠滑過時動態翻滾的導航條效果_javascript技巧

來源:互聯網
上載者:User

本文執行個體講述了JS+CSS實現滑鼠滑過時動態翻滾的導航條效果。分享給大家供大家參考。具體如下:

這是一款滑鼠移至上方時動態翻滾的導航條,注意這裡用了兩個背景圖,請等待網頁載入完成或多重新整理幾次,這個是使用JavaScript實現的,不過代碼好像是從jQuery裡摘出來的,有點像。

運行效果截圖如下:

線上示範地址如下:

http://demo.jb51.net/js/2015/js-css-mouse-over-nav-scroll-style-codes/

具體代碼如下:

<!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>動態翻滾的導航條</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(images/YL29.jpg) repeat-x}div#nav ul{  width: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(images/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%;  width: 77px;  background:url(images/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;  width: 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>

希望本文所述對大家的JavaScript程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.