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中AppendChild与insertBefore的用法详细解析
Dec 16 Javascript
修改或扩展jQuery原生方法的代码实例
Jan 13 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
Oct 11 Javascript
详解vue组件通信的三种方式
Jun 30 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 jQuery
关于JavaScript语句后面的分号问题
Dec 07 Javascript
Bootstrap模态对话框用法简单示例
Aug 31 Javascript
手挽手带你学React之React-router4.x的使用
Feb 14 Javascript
vue实现微信获取用户信息的方法
Mar 21 Javascript
npm 语义版本控制详解
Sep 10 Javascript
Vue实现PC端靠边悬浮球的代码
May 09 Javascript
JS前端基于canvas给图片添加水印
Nov 11 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中一个控制字符串输出的函数
2006/10/09 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
PHP面向对象详解(三)
2015/12/07 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
python简单实现旋转图片的方法
2015/05/30 Python
pycharm安装图文教程
2017/05/02 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python实现打印实心和空心菱形
2019/11/23 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
自考毕业自我鉴定范文
2013/10/27 职场文书
家庭教育先进个人事迹材料
2014/01/24 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
2016教师节感恩话语
2015/12/09 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android