JS+CSS实现大气清新的滑动菜单效果代码


Posted in Javascript onOctober 22, 2015

本文实例讲述了JS+CSS实现大气清新的滑动菜单效果代码。分享给大家供大家参考,具体如下:

这是一款比较大气清新的滑动导航菜单,CSS和JavaScript配合完成,鼠标放到一级菜单上,会滑出二级的菜单,兼容性也不错,适合大多数网站使用,用到两张背景图片,请拷贝图片地址下载图片。

运行效果截图如下:

JS+CSS实现大气清新的滑动菜单效果代码

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>滑动导航菜单</title>
<style>
body {margin:25px; font:12px Verdana, Arial, Helvetica}
* {padding:0; margin:0}
.dropdown {float:left; padding-right:5px}
.dropdown dt {width:188px; border:2px solid #9ac1c9; padding:8px; font-weight:bold; cursor:pointer; background:url(images/header.gif)}
.dropdown dt:hover {background:url(images/header_over.gif)}
.dropdown dd {position:absolute; overflow:hidden; width:208px; display:none; background:#fff; z-index:200; opacity:0}
.dropdown ul {width:204px; border:2px solid #9ac1c9; list-style:none; border-top:none}
.dropdown li {display:inline}
.dropdown a, .dropdown a:active, .dropdown a:visited {display:block; padding:5px; color:#333; text-decoration:none; background:#eaf0f2; width:194px}
.dropdown a:hover {background:#d9e1e4; color:#000}
.dropdown .underline {border-bottom:1px solid #b9d6dc}
</style>
<script type="text/javascript">
var DDSPEED = 10;
var DDTIMER = 15;
function ddMenu(id,d){
 var h = document.getElementById(id + '-ddheader');
 var c = document.getElementById(id + '-ddcontent');
 clearInterval(c.timer);
 if(d == 1){
  clearTimeout(h.timer);
  if(c.maxh && c.maxh <= c.offsetHeight){return}
  else if(!c.maxh){
   c.style.display = 'block';
   c.style.height = 'auto';
   c.maxh = c.offsetHeight;
   c.style.height = '0px';
  }
  c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
 }else{
  h.timer = setTimeout(function(){ddCollapse(c)},50);
 }
}
function ddCollapse(c){
 c.timer = setInterval(function(){ddSlide(c,-1)},DDTIMER);
}
function cancelHide(id){
 var h = document.getElementById(id + '-ddheader');
 var c = document.getElementById(id + '-ddcontent');
 clearTimeout(h.timer);
 clearInterval(c.timer);
 if(c.offsetHeight < c.maxh){
  c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
 }
}
function ddSlide(c,d){
 var currh = c.offsetHeight;
 var dist;
 if(d == 1){
  dist = (Math.round((c.maxh - currh) / DDSPEED));
 }else{
  dist = (Math.round(currh / DDSPEED));
 }
 if(dist <= 1 && d == 1){
  dist = 1;
 }
 c.style.height = currh + (dist * d) + 'px';
 c.style.opacity = currh / c.maxh;
 c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
 if((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)){
  clearInterval(c.timer);
 }
}
</script>
</head>
<body>
<dl class="dropdown">
 <dt id="one-ddheader" onmouseover="ddMenu('one',1)" onmouseout="ddMenu('one',-1)">源码下载</dt>
 <dd id="one-ddcontent" onmouseover="cancelHide('one')" onmouseout="ddMenu('one',-1)">
  <ul>
   <li><a href="#" class="underline">最新源码</a></li>
   <li><a href="#" class="underline">下载排行</a></li>
   <li><a href="#" class="underline">脚本资源</a></li>
   <li><a href="#">Ajax实例</a></li>
  </ul>
 </dd>
</dl>
<dl class="dropdown">
 <dt id="two-ddheader" onmouseover="ddMenu('two',1)" onmouseout="ddMenu('two',-1)">网页特效</dt>
 <dd id="two-ddcontent" onmouseover="cancelHide('two')" onmouseout="ddMenu('two',-1)">
  <ul>
   <li><a href="#" class="underline">菜单导航</a></li>
   <li><a href="#" class="underline">层和布局</a></li>
   <li><a href="#" class="underline">图片特效</a></li>
  </ul>
 </dd>
</dl>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js实现键盘控制DIV移动的方法
Jan 10 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
Jun 25 Javascript
JS+CSS实现简易的滑动门效果代码
Sep 24 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
Aug 04 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
浅谈React的最大亮点之虚拟DOM
May 29 Javascript
Vue自定义指令封装节流函数的方法示例
Jul 09 Javascript
使用Vue 实现滑动验证码功能
Jun 27 Javascript
js实现简易ATM功能
Oct 27 Javascript
Webpack 实现 Node.js 代码热替换
Oct 22 #Javascript
JS+CSS实现仿msn风格选项卡效果代码
Oct 22 #Javascript
Node.js巧妙实现Web应用代码热更新
Oct 22 #Javascript
深入剖析JavaScript编程中的对象概念
Oct 21 #Javascript
JavaScript中Boolean对象的属性解析
Oct 21 #Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 #Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 #Javascript
You might like
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
Django中FilePathField字段的用法
2020/05/21 Python
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
毕业生找工作推荐信
2013/11/21 职场文书
创意活动策划书
2014/01/15 职场文书
十岁生日同学答谢词
2014/01/19 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
教师师德师风整改措施
2014/10/24 职场文书
部队2015年终工作总结
2015/04/02 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
Hive常用日期格式转换语法
2022/06/25 数据库
Mysql如何查看是否使用到索引
2022/12/24 MySQL