怎么用HTML+JavaScript实现筋斗云导航栏效果
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了怎么用HTML+JavaScript实现筋斗云导航栏效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用HTML+JavaScript实现筋斗云导航
千家信息网最后更新 2025年11月07日怎么用HTML+JavaScript实现筋斗云导航栏效果
这篇文章主要介绍了怎么用HTML+JavaScript实现筋斗云导航栏效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用HTML+JavaScript实现筋斗云导航栏效果文章都会有所收获,下面我们一起来看看吧。
功能要求:
1、鼠标经过某个li,筋斗云跟着到当前的位置
2、鼠标离开这个li,筋斗云回到原来的位置
3、鼠标点击了某个li,筋斗云就留在点击这个位置
Document
window.addEventListener('load', function() { //获得每个li,以及img var as = document.querySelectorAll('li') var img = document.querySelector('img') //给每个li添加点击事件 as[1].addEventListener('mousemove', function() { animate(img, 75) }) as[2].addEventListener('mousemove', function() { animate(img, 145) }) as[3].addEventListener('mousemove', function() { animate(img, 215) }) as[4].addEventListener('mousemove', function() { animate(img, 300) //用mousemove事件比mouseover事件要好,防止震动 }) as[0].addEventListener('mousemove', function() { animate(img, 5) }) for (i = 0; i < as.length; i++) { //给每个a添加一个自定义属性,倒是用来作为索引号 as[i].setAttribute('index', i) } var posi = 0 console.log(as[0].getAttribute('index')) for (i = 0; i < as.length; i++) { as[as[i].getAttribute("index")].addEventListener('mouseout', fn) function fn() { animate(img, posi) } } //3,鼠标点击某个li,就固定在这个li上。离开经过某个li,就到某个li上,离开这个li,又回到刚刚的li上,相当于对初始位置的一个刷新 as[1].addEventListener('click', function() { animate(img, 75) posi = 75 //删除相应的离开事件 }) as[2].addEventListener('click', function() { animate(img, 145) posi = 145 }) as[3].addEventListener('click', function() { animate(img, 215) posi = 215 }) as[4].addEventListener('click', function() { animate(img, 300) //用mousemove事件比mouseover事件要好,防止震动 posi = 300 }) as[0].addEventListener('click', function() { animate(img, 5) posi = 5 })})自己只能做的出这种简单的效果,而且还是bug
1、利用动画函数
2、原先图片的起始位置是0
3、鼠标经过某个li,把当前小li的offsetLeft作为目标值
4、如果点击了某个li,就把当前li的位置存起来,作为图片的起始位置
思路和自己想的是一样的,但是要注意位置的取法,是直接通过元素的点击,去自动获得元素的位置,(但并没有仔细考虑图片应该在文字的中心)
其次,加入了ul的绝对定位,这样可以消除抖动
Document
window.addEventListener('load', function() { var c_nav = document.querySelector('.c-nav') var cloud = document.querySelector('.cloud') var lis = document.querySelectorAll('li') var current = 0 //起始位置;别用手算,肯定是获得某个元素的位置 for (var i = 0; i < lis.length; i++) { lis[i].addEventListener('mouseenter', function() { animate(cloud, this.offsetLeft) //鼠标经过时候发生抖动:因为图片过来后,就发生冲突了,此时鼠标就在图片上面 }) //鼠标离开回到起始的位置 lis[i].addEventListener('mouseleave', function() { animate(cloud, current) }) //鼠标点击事件 lis[i].addEventListener('click', function() { // alert(12) // animate(cloud, this.offsetLeft) //点击了鼠标之后,图片的起始位置就发生改变了 current = this.offsetLeft for (var i = 0; i < lis.length; i++) { lis[i].className = '' } this.className = 'current' }) }})关于"怎么用HTML+JavaScript实现筋斗云导航栏效果"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"怎么用HTML+JavaScript实现筋斗云导航栏效果"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
位置
鼠标
筋斗
事件
图片
效果
起始
导航
元素
文字
知识
内容
文章
篇文章
要好
首页
定位
震动
一致
热门
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
女生app软件开发
批量删除数据库某个时间内数据
中学生阅读软件开发
电脑无线网络安全类型不匹配
生鲜采购管理软件开发
网络安全和信息化工作发言
服务器管理员用户被禁用
内蒙古数据库安全箱价目表
c绑定数据库数据
毛晶玥网络安全教育
广州薇恩互联网科技有限公司
什么网易服务器最好
大学生谈网络安全问题
我的世界王国服务器
电脑服务器被切断
网络技术和信息管理哪个重要
服务器硬件维保有前途吗
网络技术学院大逃杀宁波
进网络技术组的理由
保山互联网科技哪家好
广州爱浦路网络技术
全国网络安全学院有哪些
云服务器正版在线选购
服务器还会保留吗
单县员工诚信积分管理软件开发
数据库题目求出库数量
可以查询药厂出售价格的数据库
计算机网络技术有本科嘛
银联金融互联网科技佛山
网络安全法重点保护什么