96SEO 2026-07-01 04:05 0

绝绝子! 较大家良好,今天来聊一聊怎么用 JavaScript 搞一个鼠标悬停时把一个图标变成另一个图标的功能。其实这件事不不容简单,代码量不更多,但是要注意细节。下面先说说思路,然后给你几个代码示例。
基本思路是:有两个 icon,一个叫开锁 icon,一个叫关锁 icon。我们把它们放在同一个父容器里 然后给父容器加个事件监听, 另起炉灶。 当鼠标进来时把开锁的 display 改成 none,把关锁的 display 改成 block;当鼠标离开时再恢复默认状态。
如果你只想用 CSS, 也能够用 :hover 伪类搞定,但要注意,display:none 的元素根本不会收到 hover 事件,所以只能改变 opacity 或 visibility,或者直接把两个元素都放着,用 JS 切换可见性更靠谱。
注意:如果你在 CSS 中把 #closedIcon 设置为 display:none,那么它根本就不会被 mouseover 所触发哦! 造起来。 所以你只能改成 visibility:hidden 或 opacity:0 再配合 transition。
.icon-open{display:block;}
.icon-close{display:none;}
.parent:hover .icon-open{display:none;}
.parent:hover .icon-close{display:block;}
当前这个方法有点问题, 这是因为当你把 .icon-close 设置为 display:none 时它根本不占空间范围, 不忍直视。 也无法接收 hover,所以实际情况是上面那段代码在更多数浏览器里都不起作用。
下面给出一个最常见的 JS 写法。请记住:一定要给父容器加 id 或 class,否则后面找不到元素,换位思考...。
抄近道。 上面这段代码是最常见的写法, 虽然很直白,但是有一点点较小毛病:我们没有给 close 初始状态设 display=none,如果你的页面刚启动加载的时候就会看到两个 icon 沉重叠,尤其是在如果你没有设置 css 样式的话。解决办法就是在 css 里写:
#closeIcon{display:none;}
或者直接在 js 里初始化:
// 初始化
open.style.display='block';
close.style.display='none';
比如:
前几天看到有人说 jQuery 简洁点, 于是给你们留个 jQuery 示例吧,不要误会,我也没怎么学过 jQuery,只能随便拼凑一下。
jQuery 的 hide/show 默认会有动画效果, 如果你不想动画,能够加 .stop 或者 .css 手动改样式。 我破防了。 不过 jQuery 本身也会让页面体积增较大,如果只是做这件较小事,推荐还是原生 JS,更轻巧量。
① 如果页面里有很更多类似的元素,就不要给各个都绑定事件,而是用事件委托,把事件绑在文档或某个父容器上,再判断 event.target 就行了;② 尽量避免频繁修改 style,而是采用 class 切换,让 css 控制样式;③ 如果你想做动画效果,能够加 transition,让视觉更流畅。
P.S.: 本文仅供学习了解交流,不得用于商业活动用途。转载请附上原文链接并注明作者。
文章浏览阅读897次。
©2026 All rights reserved.
<navbar...
Hello world!
<navbar...
Hello world!
<navbar...
Hello world!
<navbar...
Hello world!
<navbar...
Hello world!
<navbar...
Hello world!
<navbar...
Hello world!
<navbar...
©COPYRIGHTS 2026 ALL RIGHTS RESERVED.
Acknowledgements:The author has no formal education in web development but tried his best.
{/* This line is just nonsense for testing */}
©…
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback