JS实现标签页效果(配合css)


Posted in Javascript onApril 03, 2013

实现的效果
JS实现标签页效果(配合css)
如上图所示为制作的标签页,我们想要实现的效果是当鼠标移到某一个标签的时候,在下面的内容区显示对应的内容,并且相应标签的颜色需要改变,如图中所示当前鼠标的位置在“标签1”上,则内容区域显示的内容为“我是内容1”,并且“标签1”的颜色要比“标签2”和“标签3”深一些,同样鼠标移到“标签2”和“标签3”的时候显示“我是内容2”和“我是内容3”。这样的效果是CSS和JS配合实现的。下面我们就来看看具体代码:

首先来看HTML代码

<!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> 
<link href="../CSS/tab.css" rel="stylesheet" type="text/css" /> 
<script language="JavaScript" type="text/javascript" src="../JS文件/jquery.js"></script> 
<script language="JavaScript" type="text/javascript" src="../JS文件/tab.js"></script> 
</head> 
<body> 
<ul id="tabfirst"> 
<li class="tabin">标签1</li> 
<li>标签2</li> 
<li>标签3</li> 
</ul> 
 <div id="contentnow" class="contentfirst contentin">我是内容1</div> 
<div id="contentnow" class="contentfirst">我是内容2</div> 
<div id="contentnow" class="contentfirst">我是内容3</div> 
</body> 
</html>

JS代码实现思路很简单,首先给每个标签项注册一个mouseover函数,当鼠标移到任何一个标签上的时候都会执行moveover函数体内的代码。函数体代码首先获取当前节点,将原来显示的内容进行隐藏,然后根据传入的节点index把对应于相应标签下的内容显示出来。在代码中我们可以看到除了对HTML中节点样式进行改动外还使用了setTimeout函数,该函数的作用是延迟函数的执行时间,下面代码中的延迟时间为300毫秒,也就是当鼠标移到标签后并不是立即执行而是延迟300毫秒后在执行,如果在300毫秒时间内鼠标移出标签区域则不再执行该代码。
$(document).ready(function(){ 
var timeoutid; 
$("#tabfirst li").each(function(index){ //每一个包装的li的JQuery对象都会执行function中的代码 
//index是当前执行这个function代码的li对应在所有li组成的数组中的索引值 
//有了index的值后,就可以找到当前标签对应的内容区域 
$(this).mouseover(function(){ 
var liNode = $(this); 
timeoutid = setTimeout(function(){ 
//将原来显示的内容进行隐藏 
$("div.contentin").removeClass("contentin"); 
//将原来有tabin属性的标签去掉tabin属性 
$("#tabfirst li.tabin").removeClass("tabin"); 
//将当前标签对应的内容区域显示出来 
$("div.contentfirst").eq(index).addClass("contentin"); 
//$("div.contentfirst:eq(" + index + ")").addClass("contentin"); 
//将当前标签增加tabin属性 
liNode.addClass("tabin"); 
},300); 
}).mouseout(function(){ 
clearTimeout(timeoutid); 
}); 
}); 
});

除了该效果外,我们还可以利用相同的原理给每个标签注册click函数,当点击每个标签的时候在原内容区域可以装载不同的页面或任意页面的一部分,有兴趣的话可以点击这里下载源码。该源码中包含了文中所提到的两种不同函数所实现的不同功能。
Javascript 相关文章推荐
取得窗口大小 兼容所有浏览器的js代码
Aug 09 Javascript
jquery toolbar与网页浮动工具条具体实现代码
Jan 12 Javascript
JS中判断null、undefined与NaN的方法
Mar 26 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
Sep 05 Javascript
详解JavaScript语言的基本语法要求
Nov 20 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
Apr 17 Javascript
JS排序之快速排序详解
Apr 08 Javascript
node.js中http模块和url模块的简单介绍
Oct 06 Javascript
如何在vue中使用ts的示例代码
Feb 28 Javascript
react-router 路由切换动画的实现示例
Dec 03 Javascript
js实现提交前对列表数据的增删改查
Jan 16 Javascript
sharp.js安装过程中遇到的问题总结
Apr 02 Javascript
JS实现下拉框的动态添加(附效果)
Apr 03 #Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 #Javascript
终于解决了IE8不支持数组的indexOf方法
Apr 03 #Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 #Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
Apr 02 #Javascript
JS获取浏览器版本及名称实现函数
Apr 02 #Javascript
js 火狐下取本地路径实现思路
Apr 02 #Javascript
You might like
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
Python实现可自定义大小的截屏功能
2018/01/20 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
python操作kafka实践的示例代码
2019/06/19 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
彪马美国官网:PUMA美国
2017/03/09 全球购物
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
解释下面关于J2EE的名词
2013/11/15 面试题
国际商务专业学生个人的自我评价
2013/09/28 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
借款协议书
2014/09/16 职场文书
机器人瓦力观后感
2015/06/12 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS