jQuery实现标签页效果实战(4)

今天我们来完成《jQuery实战》系列的标签页效果。先来看一看效果图

jQuery实现标签页效果实战(4)

这里有两部分的内容,上面是一个标签页的效果,下面也是一个标签页的效果。在实际应用中也经常会见到标签页的效果,它的作用主要是在页面可视区有限的情况下展示更多的内容。当用户想看其他内容的时候不需要离开页面,只需要把鼠标移动到某一个标签上就可以看到这个标签里面所对应的内容。门户网站的首页,有很多频道都是标签页的最佳案例,如体育、财经、军事等模块都是位于不同的标签上。上边的标签页一般称为滑动门技术,下面的内容是一次性加载进来,鼠标移动到某个标签之后,下面的内容就跟着显示对应的内容,不需要加载页面。而下面的标签页选用另一种写法,这是通过其他页面load进来的,当你滑动到某个标签的时候,加载对应的页面。

好了,开始编写我们的代码,首先是编写html页面”tab.jsp”。

<body> <ul> <li>标签1</li> <li>标签2</li> <li>标签3</li> </ul> <div>我是内容1</div> <div>我是内容2</div> <div>我是内容3</div> </body>

一般标签我们都用ul和li来表示,每个li代表一个标签,里面有三个li,分别是标签1,标签2,标签3,下面内容区域是3个div,这三个div是预先装载进来的。这时候的基本骨架已经完成,接下来编写css代码。
第一步把ul里面的li改造为标签的效果。回忆上节的课程,li默认是纵向的效果,我们想把它变成横向用清楚li的特征,然后让其float漂移达到相应的效果。

$(document).ready(function() { $("#tabfirst li").mouseover(function() { //1.将原来深颜色的li去掉 $(".tabin").removeClass("tabin"); //2.将原来显示的div隐藏 $(".contentin").removeClass("contentin"); //3.计算鼠标点中哪一个li var chooseStr = $(this).html(); var index = 0; if("标签1" == chooseStr) { index = 0; } else if("标签2" == chooseStr) { index = 1; } else if("标签3" == chooseStr) { index = 2; } //4.将对应的div显示和对应的li加深 $("#tabfirst li:eq("+index+")").addClass("tabin"); $("div.contentfirst:eq("+index+")").addClass("contentin"); }); });

这里的mouseover()函数的含义是当鼠标进入li时执行函数里面的代码。函数里面的代码先将原来深颜色的li去掉,然后将原来显示的div隐藏,计算鼠标点中哪一个li赋值在index变量中,最后对应的div显示和对应的li加深和将对应的div显示。

下面的标签页思路一样,真个完整的html页面如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link type="text/css" href="https://www.jb51.net/css/tab.css" /> <script type="text/javascript" src="https://www.jb51.net/js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="https://www.jb51.net/js/tab.js"></script> <title>jQuery实战:tab页签</title> </head> <body> <ul> <li>标签1</li> <li>标签2</li> <li>标签3</li> </ul> <div>我是内容1</div> <div>我是内容2</div> <div>我是内容3</div> <br /> <br /> <br /> <ul> <li>装入完整页面</li> <li>装入部分页面</li> <li>从远程获取数据</li> </ul> <div> <img alt="装载中" src="https://www.jb51.net/image/img-loading.gif" /> <div></div> </div> </body> </html>

css文件如下:

ul,li { margin: 0; padding: 0; list-style: none; } #tabfirst li { float: left; background-color: #868686; color: white; padding: 5px; margin-right: 2px; border: 1px solid white; } #tabfirst li.tabin { background-color: #6E6E6E; border: 1px solid #6E6E6E; } div.contentfirst { clear: left; background-color: #6E6E6E; color: white; width: 300px; height: 100px; padding: 10px; display: none; } div.contentin { display: block; } #tabsecond li { float: left; background-color: white; color: blue; padding: 5px; margin-right: 2px; cursor: pointer; } #tabsecond li.tabin { background-color: #F2F6FB; border: 1px solid black; border-bottom: 0; z-index: 100; position: relative; } #contentsecond { width: 500px; height: 200px; padding: 10px; background-color: #F2F6FB; clear: left; border: 1px solid black; position: relative; top: -1px; } img { display: none; }

jQuery代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgjfd.html