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 相关文章推荐
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
Nov 24 Javascript
jquery使用ul模拟select实现表单美化的方法
Aug 18 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
Apr 12 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
JavaScript实现经典排序算法之选择排序
Dec 28 Javascript
bootstrap输入框组件使用方法详解
Jan 19 Javascript
原生js实现验证码功能
Mar 16 Javascript
jquery仿微信聊天界面
May 06 jQuery
vue elementui el-form rules动态验证的实例代码详解
May 23 Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 Javascript
详解jQuery中的prop()使用方法
Jan 05 jQuery
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连接oracle数据库的方法(测试成功)
2016/05/26 PHP
PHP 网站修改默认访问文件的nginx配置
2017/05/27 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
Python3 中文文件读写方法
2018/01/23 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
文科教师毕业的自我评价
2014/01/16 职场文书
服装设计师职业生涯规划范文
2014/02/28 职场文书
党支部对照检查材料
2014/08/25 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书