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 相关文章推荐
Add Formatted Text to a Word Document
Jun 15 Javascript
javascript权威指南 学习笔记之变量作用域分享
Sep 28 Javascript
AngularJS控制器继承自另一控制器
May 09 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
May 28 Javascript
JavaScript进阶练习及简单实例分析
Jun 03 Javascript
jQuery实现表格元素动态创建功能
Jan 09 Javascript
canvas实现简易的圆环进度条效果
Feb 28 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
Sep 14 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
Aug 27 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
Sep 28 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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
PHP 字符串操作入门教程
2006/12/06 PHP
坏狼的PHP学习教程之第1天
2008/06/15 PHP
php中常用字符串处理代码片段整理
2011/11/07 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
js实现列表按字母排序
2020/08/11 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
Python set集合类型操作总结
2014/11/07 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
python实现上传下载文件功能
2020/11/19 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
医院科室评语
2015/01/04 职场文书
红色经典电影观后感
2015/06/18 职场文书
行政处罚告知书
2015/07/01 职场文书
《风筝》教学反思
2016/02/23 职场文书
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL
vue动态绑定style样式
2022/04/20 Vue.js