JS實現橫向展開動感伸縮菜單效果代碼,js橫向

來源:互聯網
上載者:User

JS實現橫向展開動感伸縮菜單效果代碼,js橫向

本文執行個體講述了JS實現橫向展開動感伸縮菜單效果代碼。分享給大家供大家參考。具體如下:

這是一款JS實現的縱向展開變橫向展開,動感伸縮菜單,緊身排列的CSS菜單,可用在部落格等重要的位置部分作菜單,學習JavaScript前端設計的也可以作為參考範例。

運行效果如下:

線上示範地址如下:

http://demo.jb51.net/js/2015/js-row-show-menu-style-codes/

具體代碼如下:

<!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>

希望本文所述對大家的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.