JavaScript实现鼠标悬停伸展收缩效果菜单

作者:异步漫步

时间:2026-10-29

浏览:303

本文提供了一段基于JavaScript实现的伸展收缩型菜单代码。通过监听鼠标悬停事件,利用定时器动态修改元素宽度,实现鼠标划过时菜单背景伸长的视觉效果。代码包含HTML结构、CSS样式及核心JS逻辑,可直接参考或添加链接进行二次开发。

文章目录

JavaScript伸展收缩菜单实现

本文详细介绍了一段使用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程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章