js弹性运动滑动的菜单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js弹性运动滑动的菜单相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>弹性运动效果下滑的菜单</title>
 <script>
  window.onload = function(){
   var oUl = document.getElementById(‘oul‘);
   var oLi = oul.getElementsByTagName(‘li‘);
   var oLine = document.getElementById(‘#underline‘);
   var oLine= oLi[oLi.length-1]
   for(var i = 0; i < oLi.length-1; i++){
    oLi[i].onmouseover = function(){
     move(oLine,this.offsetLeft);
     console.log(this.offsetLeft)
    }
   }
  }
//封装好的函数:
  var speed = 0;
  var left = 0;
  function move(obj,target){
   clearInterval(obj.timer);
   obj.timer = setInterval(function(){
    speed += (target - obj.offsetLeft)/5;
    speed *= 0.7;
    left += speed;
    obj.style.left = left + "px";
    if(Math.abs(speed)<1&&Math.abs(target-left)<1){
     obj.style.left = target + "px";
     clearInterval(obj.timer);
    }
    document.title = obj.style.left + ‘|‘ + target;
   }, 30)
  }
 </script>
 <style>
  *{
   margin: 0;
   padding: 0;
  }
  li{
   list-style: none;
   float: left;
   width: 100px;
   height: 30px;
   border: 1px solid #ccc;
   position: relative;
   text-align: center;
   line-height: 30px;
   z-index: 2;
   cursor: pointer;
  }
  #underline{
   width: 101px;
   height: 5px;
   background-color: red;
   position: absolute;
   overflow: hidden;
   border: none;
   top: 26px;
   left: 0;
   z-index: 1;
  }
  ul{
   width: 508px;
   height: 30px;
   position: relative;
   margin: 100px auto 0;
  }
 </style>
</head>
<body>
 <ul id="oul">
  <li>首页</li>
  <li>关于我们</li>
  <li>产品</li>
  <li>联系方式</li>
  <li id="underline"></li>
 </ul>
</body>
</html>


















































































以上是关于js弹性运动滑动的菜单的主要内容,如果未能解决你的问题,请参考以下文章

利用弹性运动的原理做弹性菜单

界面里滑动时的弹性效果应该叫什么?阻尼效果?

JS学习之路,之弹性运动框架

js 运动函数篇 (加速度运动弹性运动重力场运动(多方向+碰撞检测+重力加速度+能量损失运动)拖拽运动)层层深入

android 怎样用HorizontalScrollView左右弹性的菜单

js 实现弹性运动的简单应用----导航栏中弹性