JavaScript实现鼠标悬停伸展收缩效果菜单
作者:异步漫步时间:2026-10-29 15:25:38浏览:304
本文提供了一段基于JavaScript实现的伸展收缩型菜单代码。通过监听鼠标悬停事件,利用定时器动态修改元素宽度,实现鼠标划过时菜单背景伸长的视觉效果。代码包含HTML结构、CSS样式及核心JS逻辑,可直接参考或添加链接进行二次开发。
JavaScript伸展收缩菜单实现
本文详细介绍了一段使用JavaScript编写的伸展收缩式菜单实现方案,供开发者参考借鉴。
这是一个纯JavaScript实现的伸展收缩菜单组件。当鼠标悬停在菜单项上时,背景色块会向右侧延伸,产生动态效果。目前示例中未包含超链接,开发者可根据需求自行添加链接并优化样式,以打造个性化的菜单体验。
运行效果截图如下:

在线演示地址如下:
http://demo.jb51.net/js/2015/js-zkss-menu-codes/
具体代码如下:
<html>
<head>
<title>真正的JavaScript伸展收缩型菜单</title>
<style type="text/css">
#con div{width:100px;margin:5px 0 5px 0;font-size:9pt;height:23px;color:white;}
</style>
<div id="con">
<div style="background-color:red">红色菜单</div>
<div style="background-color:green">绿色菜单 </div>
<div style="background-color:blue">蓝色</div>
<div style="background-color:yellow">黄色</div>
<div style="background-color:pink">这是什么色</div>
<div style="background-color:orange">桔色</div>
<div style="background-color:black">黑色超酷</div>
</div>
<script language="javascript">
function $(e){return document.getElementById(e);}
function roulMenu(e,maxW,minW){
var divs = $(e).getElementsByTagName('div');
for(var i=0;i<divs.length;i++){
(function(){
var tims,timss;
divs[i].onmouseover=function(){
var self = this;
clearInterval(timss);
tims=setInterval(function(){
if(self.offsetWidth<maxW){
self.style.width = self.offsetWidth + 5 + 'px';
}else{
clearInterval(tims);
}
},10);
}
divs[i].onmouseout=function(){
var self = this;
clearInterval(tims);
timss=setInterval(function(){
if(self.offsetWidth>minW){
self.style.width = self.offsetWidth - 5 + 'px';
}else{
clearInterval(timss);
}
},10);
}
})();
}
}
//使用方法
roulMenu('con',200,100);
</script>
希望本文所述对大家的JavaScript程序设计有所帮助。
作者最新文章
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
JS对象数组转字符串为什么推荐用JSON.stringify()
2026-11-05 09:40:31
