鼠标悬停时导航菜单下边框从中展开的效果
要实现鼠标悬停时导航菜单下边框从中展开的效果,你可以使用CSS的transition
属性和JavaScript的事件处理程序来实现。以下是一个示例代码片段,演示了如何实现这个效果:
HTML:
<ul class="menu"> <li><a href="#">菜单项1</a></li> <li><a href="#">菜单项2</a></li> <li><a href="#">菜单项3</a></li> <li><a href="#">菜单项4</a></li> </ul>
CSS:
.menu li { position: relative; display: inline-block; padding: 10px; } .menu li::after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px; background-color: blue; transition: width 0.5s ease-in-out; } .menu li:hover::after { width: 100%; left: 0; }
JavaScript:
var menuItems = document.querySelectorAll('.menu li'); menuItems.forEach(function(item) { item.addEventListener('mouseenter', function() { this.querySelector('a').classList.add('active'); }); item.addEventListener('mouseleave', function() { this.querySelector('a').classList.remove('active'); }); });
在上述代码中,我们使用了CSS的::after
伪元素来创建导航菜单下方的边框。通过将width
属性设置为0,并在::after
伪元素上应用过渡效果,我们可以实现边框从中展开的效果。当鼠标悬停在菜单项上时,我们通过添加/移除active
类来触发边框展开/收起的动画。
请将上述HTML、CSS和JavaScript代码整合到你的项目中,并确保在HTML中引入了JavaScript文件。这样,当鼠标悬停在导航菜单上时,边框将从中展开,并在经过0.5秒后收起。
分类:
HTML5+CSS3
, JavaScript
标签:
JavaScript
, WEB前端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现