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 运动函数篇 (加速度运动弹性运动重力场运动(多方向+碰撞检测+重力加速度+能量损失运动)拖拽运动)层层深入