首頁 >web前端 >js教程 >JQuery標籤頁效果實例詳解_jquery

JQuery標籤頁效果實例詳解_jquery

WBOY
WBOY原創
2016-05-16 15:23:411408瀏覽

本文實例講述了JQuery標籤頁效果實作方法。分享給大家參考,具體如下:

第一個標籤頁中滑鼠滑過顯示不同的標籤頁,第二個標籤頁中點選不同標籤載入其他頁面中的內容,載入等待的圖片會緩慢隱藏,效果圖如下:

/WebRoot/4.Tab.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
 <title>JQuery实例4:标签页效果</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <link type="text/css" rel="stylesheet" href="css/tab.css" />
 <script type="text/javascript" src="js/jquery.js"></script>
 <script 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 class="contentin contentfirst">我是内容1</div>
 <div class="contentfirst">我是内容2</div>
 <div class="contentfirst">我是内容3</div>
 <br />
 <br />
 <br />
 <ul id="tabsecond">
 <li class="tabin">装入完整页面</li>
 <li>装入部分页面</li>
 <li>从远程获取数据</li>
 </ul>
 <div id="contentsecond">
 <img alt="JQuery標籤頁效果實例詳解_jquery" src="images/img-loading.gif" />
 <div id="realcontent"></div>
 </div>
 </body>
</html>

/WebRoot/js/tab.js:

var timoutid;
$(document).ready(function(){
 //找到所有的标签
 /*
 $("li").mouseover(function(){
 //将原来显示的内容区域进行隐藏
 $("div.contentin").hide();
 //当前标签所对应的内容区域显示出来
 });
 */
 $("#tabfirst li").each(function(index){
 //每一个包装li的jquery对象都会执行function中的代码
 //index是当前执行这个function代码的li对应在所有li组成的数组中的索引值
 //有了index的值之后,就可以找到当前标签对应的内容区域
 $(this).mouseover(function(){ 
 var liNode = $(this);
 timoutid = setTimeout(function(){
 //将原来显示的内容区域进行隐藏
 $("div.contentin").removeClass("contentin");
 //对有tabin的class定义的li清除tabin的class
 $("#tabfirst li.tabin").removeClass("tabin");
 //当前标签所对应的内容区域显示出来
 //$("div").eq(index).addClass("contentin");
 $("div.contentfirst:eq(" + index + ")").addClass("contentin");
 liNode.addClass("tabin"); 
 },300); 
 }).mouseout(function(){
 clearTimeout(timoutid); 
 });
 });
 //在整个页面装入完成后,标签效果2的内容区域需要装入静态的html页面内容
 $("#realcontent").load("TabLoad.html");
 //找到标签2效果对应的三个标签,注册鼠标点击事件
 $("#tabsecond li").each(function(index){
 $(this).click(function(){
 $("#tabsecond li.tabin").removeClass("tabin");
 $(this).addClass("tabin");
 if (index == 0) {
 //装入静态完成页面
 $("#realcontent").load("TabLoad.html");
 } else if (index == 1) {
 //装入动态部分页面
 $("#realcontent").load("TabLoad.jsph2");
 } else if (index == 2) {
 //装入远程数据(这里也是一个动态页面输出的数据)
 //$("#realcontent").load("TabData.jsp");
 $("#realcontent").load("TabLoad.jsp");
 }
 });
 });
 //对于loading图片绑定ajax请求开始和交互结束的事件
 $("#contentsecond img").bind("ajaxStart",function(){
 //把div里面的内容清空
 $("#realcontent").html("");
 //整个页面中任意ajax交互开始前,function中的内容会被执行
 $(this).show();
 }).bind("ajaxStop",function(){
 //整个页面中任意ajax交互结束后,function中的内容会被执行 
 $(this).slideUp(5000);
 });
});

/WebRoot/css/tab.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;
}

/WebRoot/TabLoad.html:

<!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">
<title>这是一个静态页面</title>
</head>
<body>
 载入静态页面的内容。<br>
 载入静态页面的内容。<br>
 载入静态页面的内容。<br>
 载入静态页面的内容。<br>
 载入静态页面的内容。<br>
 载入静态页面的内容。<br>
</body>
</html>

/WebRoot/TabLoad.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!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">
<title>动态页面</title>
</head>
<body>
 <h2>
 <%=new Date() %><br>
 1.这是一个动态页面的一部分<br>
 2.这是一个动态页面的一部分<br>
 3.这是一个动态页面的一部分<br>
 </h2>
 这部分不显示<br>
</body>
</html>

本節學到的JQuery及其他開發知識:

1.一組標籤用一個ul來管理,每個標籤是ul中的一個li;標籤下面的內容就是用div來管理

2.跟在浮動元素(float)之後的元素會圍繞著浮動元素,如果不希望有這種圍繞,可以在浮動元素之後的那個元素上定義clear屬性,來清除這種效果。

3.實現當前標籤和內容區域的融合,可以透過使用相同的背景色,外加當前標籤使用同顏色的邊框來實現。

4.JQuery中的mouseover,mouseout方法對應標準javascript的onmouseover,onmouseout事件,可以處理滑鼠進入和離開的事件。

5.在一個包含了多個元素的JQuery物件上執行each方法,可以註冊給each方法的那個function的內容被每一個元素執行。同時這個function還可以接收到一個參數,表示這個元素的索引值。 JQuery中的很多方法也用到了each

6.eq方法可以根據索引值只得到JQuery物件中包含的多個元素中的某一個元素,並且仍然傳回元素對應的新JQuery物件。

7.選擇器中使用eq,例如$(“div:eq(1)”)

8.addClass和removeClass方法用來新增和移除元素的class定義。

9.Javascript中的setTimeout方法可以延時執行某些程式碼,對應的clearTimeout可以清除設定的延遲操作。

10.做一個AJAX應用程式的時候,可以考慮現在FireFox上調試通過,然後再到其他瀏覽器中進行檢查,並修正可能的兼容性問題。

11.cursor屬性可以控制元素上的滑鼠樣式,pointer的屬性值表示手型樣式,也就是我們常見的連結滑鼠樣式

12.position屬性可以控制元素定位的方式,值為relative時表示相對原來的位置進行定位。可以透過設定top,left,bottom,right的值來
控制元素相對原來的位置進行移動

13.z-index可以控制元素在頁面中的層高,值越大就會在頁面的層越靠前,也會覆蓋住一些z-index值較低的元素。只有position的值為relative或absolute的元素,z-index才會生效。

14.JQuery中的load方法十分強大,可以把一個指定的靜態,動態頁面或伺服器端程式輸出的資料裝入到執行load方法的JQuery物件包裝的元素中。

15.load方法也支援部分裝載,在裝入的頁面位址後面加空格,然後使用選擇器,就可以把頁面中符合選擇器的部分裝進去。

16.被load的頁面一定要是UTF-8編碼的,否則裝入後中文會出現亂碼。

17.bind可以用來給指定的節點綁定Javascript的事件或JQuery中定義的事件。對於JQuery中沒有直接提供註冊方法的事件,可以用這種方式註冊。方法的第二個參數可以是事件執行的方法定義。

18.ajaxStart,ajaxStop對應ajax互動開始前和結束後的事件,給某一個節點註冊了這兩個事件後,當前頁面的ajax交互開始前和結束後,就會執行指定的方法。

希望本文所述對大家jQuery程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn