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 相关文章推荐
Confirmer JQuery确认对话框组件
Jun 09 Javascript
把input初始值不写value的具体实现方法
Jul 04 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
Dec 08 Javascript
JavaScript动态添加style节点的方法
Jun 09 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
Jul 13 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
Sep 28 Javascript
JS+CSS实现滚动数字时钟效果
Dec 25 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
Aug 12 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
html实现随机点名器的示例代码
Apr 02 Javascript
TypeScript中条件类型精读与实践记录
Oct 05 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
python web基础之加载静态文件实例
2018/03/20 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Python FFT合成波形的实例
2019/12/04 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
暇步士官网:Hush Puppies
2016/09/22 全球购物
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
《花的勇气》教后反思
2014/02/12 职场文书
2014年化验室工作总结
2014/11/21 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
台风停课通知
2015/04/24 职场文书
2015年加油站工作总结
2015/05/13 职场文书
保留意见审计报告
2015/06/05 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏