JavaScript实现精美个性导航栏筋斗云效果
网络编程 2021-07-04 17:32www.168986.cn编程入门
这篇文章主要介绍了JavaScript实现精美个性导航栏筋斗云效果,非常不错,具有参考借鉴价值,需要的朋友可以参考下
实现效果
实现效果如下图所示
实现原理
什么是筋斗云效果
•这个效果很简单,就是鼠标移到其他导航目录时会有背景图片跟着鼠标滑动到当前的目录。
实现思路
•鼠标经过的时候,利用offsetLeft获得当前盒子距离左侧的距离,把这个值赋给缓动动画的end值。
•当点击的时候记住当前的offsetLeft值,当鼠标经过的时候把之前点击的offsetLeft给现在经过时候的值。
实现代码
狼蚁网站SEO优化是实现代码以及详细注释,核心设置一个position为absolute的span标签,通过绑定鼠标事件,用封装好的animate动画实现span的“筋斗云”效果。
<!DOCTYPE html> <html> <head> <title>导航栏筋斗云效果</title> <meta charset="utf-8"> <style type="text/css"> { padding: 0; margin: 0; } body{ background-color: rgba(0, 0, 0, 0.6); } .box{ width: 415px; height: 42px; margin: 200px auto; background-color: #fff; position: relative; } ul{ list-style: none; position: relative; } li{ float: left; width: 83px; height: 42px; text-align: center; font: 500 15px/42px "微软雅黑"; cursor: pointer; } span{ position: absolute; left: 0; : 0; width: 83px; height: 42px; background-image: linear-gradient(to right,#03c03c 50% ,#51ee5d 100%); } </style> </head> <body> <div class="box"> <span></span> <ul> <li>菜单栏1</li> <li>菜单栏2</li> <li>菜单栏3</li> <li>菜单栏4</li> <li>菜单栏5</li> </ul> </div> <script type="text/javascript"> window.onload = function(){ // 鼠标放在哪个li上面,span对应一道到哪里,移开后回到原位置 var liArr = document.getElementsByTagName("li"); var liWidth = liArr[0].offsetWidth; var span = document.getElementsByTagName("span")[0]; // 计数器 var t = 0; // for循环绑定事件 for(var i=0; i<liArr.length; i++){ // 自定义属性,然后绑定index属性为索引值 liArr[i].index = i; // 鼠标进入事件 liArr[i].onmouseover = function(){ // 然span运动到该li的索引值位置 animate(span, this.indexliWidth); } // 鼠标移开 liArr[i].onmouseout = function(){ // span运动到原位置 animate(span, tliWidth); } // 点击事件 liArr[i].onclick = function(){ // 计数器记录当前标签索引值 t = this.index; animate(span, tliWidth); } } // 缓动动画封装 function animate(element, target){ // 清除间歇调用 clearInterval(element.timer); // 设置超时调用 element.timer = setInterval(function(){ // 设置步数 var step = (target - element.offsetLeft)/10; // 调整步数 step = step > 0 ? Math.ceil(step) : Math.floor(step); // 设置样式 element.style.left = element.offsetLeft + step + "px"; // console.log(1); if(Math.abs(target - element.offsetLeft) < Math.abs(step)){ element.style.left = target + "px"; clearInterval(element.timer); } }, 20); } } </script> </body> </html>
以上所述是长沙网络推广给大家介绍的JavaScript实现精美个性导航栏筋斗云效果,希望对大家有所帮助!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程