当前位置: 首页 > news >正文

导航特效 JS一键实现hover文本打乱效果

不知道大家有没有见过这种高级感满满的导航效果:鼠标悬停在导航文字上,文字会先变成乱码一样的随机字符,再慢慢还原成原本的样子,低调又有设计感。

这种效果不用复杂的框架,纯原生JS+CSS就能实现,不管是用在个人博客、官网导航,还是按钮交互上,都能瞬间提升页面质感。今天就把完整教程+带注释源码分享给大家,新手也能直接复制使用。

先简单说下核心逻辑:给导航a标签绑定鼠标悬停事件,悬停时通过定时器,让文字从第一个字符开始,逐步将随机字符替换为原始文本,达到“打乱→还原”的动态效果,CSS则负责页面布局和hover时的颜色变化,整体实现起来非常简单。

完整源码

HTML文件(index.html)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>使用 Javascript 实现文本打乱效果</title><link rel="stylesheet" href="./style.css">
</head>
<body><ul><li><a href="#" data-text="Home"></a></li><li><a href="#" data-text="About">About</a></li><li><a href="#" data-text="Hover To Scramble Me">Hover To Scramble Me</a></li><li><a href="#" data-text="Services">Services</a></li><li><a href="#" data-text="Our Team">Our Team</a></li><li><a href="#" data-text="Contact Us">Contact Us</a></li></ul><script>document.querySelectorAll('ul li a').forEach(element => {let randomChars = "!@#$%^&*()_+-<>?";let originalText = element.dataset.text;element.addEventListener('mouseover', () => {let iterations = 0;let interval = setInterval(() => {element.textContent = originalText.split("").map((char, index) => {if (index < iterations) return char;return randomChars.charAt(Math.floor(Math.random() * randomChars.length));}).join("");if (iterations >= originalText.length) {clearInterval(interval);}iterations += 1/ 3;},50)})})</script>
</body>
</html> 

CSS文件(style.css)

/* 初始化页面样式,清除默认边距,避免布局错乱 */
*{margin: 0;padding: 0;box-sizing: border-box;
}/* 页面主体样式:让导航栏垂直居中显示 */
body {display: flex;justify-content: center; /* 水平居中 */align-items: center; /* 垂直居中 */min-height: 100vh; /* 让body占满整个屏幕高度 */background: #222; /* 深色背景,突出白色文字和绿色hover效果 */
}/* 导航列表样式:垂直排列,居中显示 */
ul {position: relative;display: flex;flex-direction: column; /* 垂直排列导航项 */text-align: center; /* 文字水平居中 */
}/* 清除列表默认圆点 */
ul li {position: relative;list-style: none; /* 去掉li前面的圆点 */
}/* 导航链接样式:美化文字 */
ul li a {position: relative;font-size: 3em; /* 文字大小,可修改 */color: #fff; /* 默认文字白色 */text-decoration: none; /* 去掉下划线 */letter-spacing: 0.05em; /* 文字间距,增加高级感 */cursor: pointer; /* 鼠标放上去显示手型 */transition: 0.5s; /* 颜色过渡,让hover颜色变化更柔和 */
}/* 鼠标悬停时,文字变绿色(可自行修改颜色) */
ul li a:hover{color: #69ff41;
}

使用说明(新手必看)

  1. 新建两个文件,分别命名为 index.htmlstyle.css ,放在同一个文件夹里;

  2. 把上面对应的代码复制到两个文件中,保存后,用浏览器打开 index.html ,就能看到效果;

  3. 可自行修改的地方:

  • 随机字符:修改JS里的randomChars,比如添加字母、数字,打乱效果更丰富;

  • 颜色:修改CSS里的background(背景色)和hover时的color(文字颜色);

  • 速度:修改JS里的定时器间隔(50)和iterations增加的数值(1/3),数值越大,还原越快;

  • 导航文本:修改a标签的data-text和标签内的文本,替换成自己需要的导航内容。

这个效果的核心就是“定时器+字符遍历替换”,没有复杂的语法,复制源码就能用,不管是练手还是实际项目中使用,都非常合适。大家可以根据自己的需求修改样式,打造属于自己的专属导航特效

本文由mdnice多平台发布

http://www.jsqmd.com/news/364855/

相关文章:

  • 【E3S出版,快速见刊检索】2026年可持续发展与城市规划国际学术会议(SDUP 2026)
  • [特殊字符] GenBI:轻松查询数据库,快速生成商业智能报告!
  • 在VisualStudio中配置汇编开发环境
  • 京东E卡回收攻略,教你快速变现! - 团团收购物卡回收
  • 数据结构与算法:Find All Anagrams in a String
  • 在 wsl 中安装 opencode
  • 2026年2月GEO公司哪家好?GEO服务商TOP9综合实力权威排行榜 - 资讯焦点
  • 护理床哪个牌子好?2026年最新品牌排行榜出炉 - 资讯焦点
  • 导师又让重写?AI论文平台 千笔AI VS PaperRed,本科生写作神器!
  • 小蓝翼家庭中央空调怎么样?TCL 空调引领行业技术发展 - 资讯焦点
  • GEO生成式引擎优化获国家级认可GEO理论创始人罗小军荣膺优秀作者 - 资讯焦点
  • 2026年全球GEO优化头部公司综合实力TOP 7权威榜单深度指南 - 资讯焦点
  • 苏果超市卡回收方法解析 - 资讯焦点
  • 手把手教你京东e卡回收变现,轻松搞定闲置卡 - 团团收购物卡回收
  • 2026年广东学校直饮水/校园饮水机/医院净水设备/办公室净水器口碑品牌综合评估报告 - 2026年企业推荐榜
  • 钢丝上的智能突围:企业AI创新与安全的动态平衡之道(2024-2026前瞻版)
  • 面向对象程序设计TODO
  • 当 MrBeast 遇上 Whatnot:揭秘超级碗背后的亿级流量支撑
  • 2026国产工业CT检测系统TOP10企业评测全解析 - 资讯焦点
  • 2026高口碑推荐:GMPC认证沐浴用品专业生产厂家 - 资讯焦点
  • 声网兄弟品牌 Agora:如何搞定 MrBeast 的超级碗级挑战?
  • 2026年护理床行业格局巨变:5大前沿品牌技术路线深度拆解 - 资讯焦点
  • 京东e卡回收变现全攻略:让闲置卡片秒变现金 - 团团收购物卡回收
  • 2026深圳儿童近视防控新标准:从南山到福田,为何数智化配镜成了刚需? - 资讯焦点
  • 京东e卡回收变现流程详解,用最快方式赚现金 - 团团收购物卡回收
  • 上海如何挑选自助仓库?三大关键点助你避坑
  • 卖掉你的京东e卡:从回收到变现的一站式解决方案 - 团团收购物卡回收
  • 韩国爱豆们的冬季随身好物 艾草蒸敷贴持续温热陪伴
  • 2026少儿编程品牌哪家强?十大品牌综合实力榜权威发布! - 匠言榜单
  • 2026年工业 MCU 哪家好?深度测评十大厂商综合实力 - 资讯焦点