案例需求
1.鼠标经过某个li,筋斗云跟着到当前li位置
2.鼠标离开这个li,筋斗云复原为原来的位置
3.鼠标点击了某个li,筋斗云就会留在点击的这个li位置
案例分析
1.利用动画函数做动画效果
2.原先筋斗云的起始位置为0
3.鼠标经过某个li,把当前li的offsetLeft位置作为目标值即可
4.鼠标离开某个li,就把目标值设为0
5.如果点击了某个li,就把li当前的位置存储起来,作为筋斗云的起始位置
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>筋斗云案例</title><style>*{margin: 0;padding: 0;}ul,li{list-style: none;}body{background-color: black;}.c-nav{width: 900px;height: 42px;background: #fff url(./img/imgPC端5.04/rss.png) no-repeat right center;margin: 100px auto;border-radius: 5px;position: relative;}.c-nav ul{position: absolute;}.c-nav li{float: left;width: 83px;text-align: center;line-height: 42px;}.c-nav li a{color: #333;text-decoration: none;display: inline-block;height: 42px;}.c-nav li a:hover{color: white;}.cloud{position: absolute;left: 0;top: 0;width: 83px;height: 42px;background: url(./img/imgPC端5.04/cloud.gif) no-repeat;}</style></head><body><div class="c-nav" id="c_nav"><span class="cloud"></span><ul><li class="current"><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></ul></div><script src="./animate.js"></script><script>//获取元素var cloud = document.querySelector('.cloud');var c_nav = document.querySelector('.c-nav');var lis = c_nav.querySelectorAll('li');var current = 0;//该变量作为筋斗云的起始位置//给所有的li绑定事件for(var i = 0; i < lis.length; i++){//鼠标经过某个li,把当前li的offsetLeft位置作为目标值lis[i].addEventListener('mouseenter',function(){animate(cloud,this.offsetLeft);});//鼠标离开某个li,就把目标值设为0lis[i].addEventListener('mouseleave',function(){animate(cloud,current);});//如果点击了某个li,就把li当前的位置存储起来,作为筋斗云的起始位置lis[i].addEventListener('click',function(){current = this.offsetLeft;});}</script></body></html>
.
