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 相关文章推荐
找到了一篇jQuery与Prototype并存的冲突的解决方法
Aug 29 Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
利用n工具轻松管理Node.js的版本
Apr 21 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
Aug 18 Javascript
jquery层次选择器的介绍
Jan 18 jQuery
详解js创建对象的几种方法及继承
Apr 12 Javascript
Webpack设置环境变量的一些误区详解
Dec 19 Javascript
基于js实现逐步显示文字输出代码实例
Apr 02 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
Jul 27 Javascript
利用JS判断元素是否为数组的方法示例
Jan 08 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写出自己的BLOG系统 2
2010/04/12 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
jquery创建div 实现代码
2009/04/27 Javascript
jcrop基本参数一览
2013/07/16 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
python之yield表达式学习
2014/09/02 Python
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
信号生成及DFT的python实现方式
2020/02/25 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
荷兰家电销售网站:Welhof
2020/12/08 全球购物
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
法律进社区活动总结
2015/05/07 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
Nginx跨域问题解析与解决
2022/08/05 Servers