JS+CSS实现简单滑动门(滑动菜单)效果


Posted in Javascript onSeptember 19, 2015

本文实例讲述了JS+CSS实现简单滑动门的方法。分享给大家供大家参考。具体如下:

这是一款超简约设计的滑动门菜单,鼠标放到主菜单上,里面的内容会跟着变化,实际上本演示是一个范例,从代码中的注释你就能感觉到,每一步都有注释,对学习JavaScript和CSS都有帮助,也为你以后写出比这更漂亮、更实用的滑动门做铺垫。

运行效果截图如下:

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>
#tab_container1{width:310px;text-align:left;border:1px solid #cccccc;background:url() repeat-x top;}
.cls_tab_nav{height:24px;overflow:hidden;font-size:12px;background:url() repeat-x bottom; padding-left:10px;}
.cls_tab_nav ul{font-size:9pt;margin:0;padding:0;}
.cls_tab_nav_li{background:url() no-repeat -70px 0;width:70px;height:24px;line-height:24px;float:left;display:inline;overflow:hidden;text-align:center;cursor:pointer;}
.cls_tab_nav_li_first{font-weight:bolder;background-position:0px 0px;}
.cls_tab_nav_li a{text-decoration:none;color:#000000;font-size:12px;}
.cls_tab_body{border-top:none;min-height:175px;padding:10px;height:175px;}
.cls_div{display:none;font-size:14px;}
.cls_tab_nav_li_first a{color:#c80000;}
</style>
</head>
  <body> 
  <div id="tab_container1" >
 <div class="cls_tab_nav">
 <ul>
  <li class="cls_tab_nav_li cls_tab_nav_li_first"><a href="#">百货大楼</a></li>
  <li class="cls_tab_nav_li"><a href="#">八方购物</a></li>
  <li class="cls_tab_nav_li"><a href="#">商场三</a></li>
 </ul>
 </div>
 <div class="cls_tab_body">
 <div class="cls_div" style="display:block;">
 百货大楼
 </div>
 <div class="cls_div">八方购物</div>
 <div class="cls_div">商场三</div>
 </div>
</div>
</body> 
</html> 
<script type="text/javascript">
try{
 document.execCommand("BackgroundImageCache", false, true);
}catch(e){}
function $(element){
 if(arguments.length>1){
 for(var i=0,elements=[],length=arguments.length;i<length;i++)
  elements.push($(arguments[i]));
 return elements;
 }
 if(typeof element=="string")
 return document.getElementById(element);
 else
 return element;
}
var Class={
 create:function(){
 return function(){
  this.initialize.apply(this,arguments);
 } 
 }
}
Object.extend=function(destination,source){
 for(var property in source){
 destination[property]=source[property];
 }
 return destination;
}
var tabMenu=Class.create();
tabMenu.prototype={
 initialize:function(container,selfOpt,otherOpt){
 this.container=$(container);
  var selfOptions=Object.extend({fontWeight:"bold",fontSize:"12px",color:"#FFBC44"},selfOpt||{});
 var otherOptions=Object.extend({fontWeight:"normal",fontSize:"12px",color:"#666"},otherOpt||{});
 //用for循环得到objs数组,主要是为了兼容非IE浏览器把空白也当作子对象
 for(var i=0,length=this.container.childNodes.length,objs=[];i<length;i++){
  if(this.container.childNodes[i].nodeType==1)
  objs.push(this.container.childNodes[i]);
 }
 var tabArray=objs[0].getElementsByTagName("li");
 //用for循环得到divArray数组,主要是为了兼容非IE浏览器把空白也当作子对象
 var divArray=new Array();
 for(i=0,length=objs[1].childNodes.length;i<length;i++){
  if(objs[1].childNodes[i].nodeType==1)
  divArray.push(objs[1].childNodes[i]);
 }
 for(i=0,length=tabArray.length;i<length;i++){
  tabArray[i].length=length;
  tabArray[i].index=i;
  tabArray[i].onmouseover=function(){
  //其它选项卡样式设置
  for(var j=0;j<this.length;j++){
   tabArray[j].style.backgroundPosition="-"+tabArray[j].offsetWidth+"px 0";
   for(var property in selfOptions){
   tabArray[j].firstChild.style[property]=otherOptions[property];
   }
  }
  //当前选项卡样式
  this.style.backgroundPosition="0 0";
  for(var property in selfOptions){
   this.firstChild.style[property]=selfOptions[property];
  }
  //隐藏其它选项卡
  for(j=0;j<this.length;j++){
   divArray[j].style.display="none";
  }
  //显示当前选项卡
  divArray[this.index].style["display"]="block";
  }
 }
 }
}
var tab1=new tabMenu("tab_container1",{fontSize:"12px",color:"#c80000",fontWeight:"bolder"},{fontWeight:"normal",color:"#000000"});
</script>

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

Javascript 相关文章推荐
jquery 图片轮换效果
Jul 29 Javascript
JavaScript中setAttribute用法介绍
Jul 20 Javascript
Javascript 计算字符串在localStorage中所占字节数
Oct 21 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
Nov 13 Javascript
node.js的事件机制
Feb 08 Javascript
BootStrap实现文件上传并带有进度条效果
Sep 11 Javascript
Angular2监听页面大小变化的解决方法
Oct 09 Javascript
基于ionic实现下拉刷新功能
May 10 Javascript
超简单的微信小程序轮播图
Nov 22 Javascript
Vue快速实现通用表单验证功能
Dec 05 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
Dec 06 Javascript
JS模拟实现京东快递单号查询
Nov 30 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 #Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
Sep 19 #Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
Sep 19 #Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
Sep 19 #Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 #Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
Sep 18 #Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
Sep 18 #Javascript
You might like
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
javascript 浏览器检测代码精简版
2010/03/04 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
[02:57]2014DOTA2国际邀请赛-观众采访
2014/07/19 DOTA
讲解python参数和作用域的使用
2013/11/01 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
Ibatis如何使用动态表名
2015/07/12 面试题
行政经理岗位职责
2013/11/09 职场文书
求职简历自我评价范例
2014/03/12 职场文书
公立医院改革实施方案
2014/03/14 职场文书
水毁工程实施方案
2014/04/01 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android