传智播客JQuery实战(四):标签页效果

news/2024/7/11 1:06:25 标签: jquery, function, class, ajax, html, stylesheet
html" title=class>class="baidu_pl">
html" title=class>class="article_content clearfix">
html" title=class>class="htmledit_views">

第一个标签页中鼠标滑过显示不同的标签页,第二个标签页中点击不同标签加载其他页面中的内容,加载等待的图片缓慢隐藏:

/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/html" title=class>class="tags" href="/tags/JQUERY.html" title=jquery>jquery.js"></script>
  <script type="text/javascript" src="js/tab.js"></script>
 </head>
 <body>
  <ul id="tabfirst">
   <li html" title=class>class="tabin">标签1</li>
   <li>标签2</li>
   <li>标签3</li>
  </ul>
  <div html" title=class>class="contentin contentfirst">我是内容1</div>
  <div html" title=class>class="contentfirst">我是内容2</div>
  <div html" title=class>class="contentfirst">我是内容3</div>
  <br />
  <br />
  <br />
  <ul id="tabsecond">
   <li html" title=class>class="tabin">装入完整页面</li>
   <li>装入部分页面</li>
   <li>从远程获取数据</li>
  </ul>
  <div id="contentsecond">
   <img alt="装载中" src="images/img-loading.gif" />
   <div id="realcontent"></div>
  </div>
 </body>
</html>

/WebRoot/js/tab.js:
var timoutid;
$(document).ready(html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(){
 //找到所有的标签
 /*
 $("li").mouseover(html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(){
  //将原来显示的内容区域进行隐藏
  $("div.contentin").hide();
  //当前标签所对应的内容区域显示出来
  });
 */
 $("#tabfirst li").each(html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(index){
  //每一个包装li的html" title=class>class="tags" href="/tags/JQUERY.html" title=jquery>jquery对象都会执行html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function中的代码
  //index是当前执行这个html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function代码的li对应在所有li组成的数组中的索引值
  //有了index的值之后,就可以找到当前标签对应的内容区域
  $(this).mouseover(html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(){ 
   var liNode = $(this);
   timoutid = setTimeout(html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(){
    //将原来显示的内容区域进行隐藏
    $("div.contentin").removeClass("contentin");
    //对有tabin的html" title=class>class定义的li清除tabin的html" title=class>class
    $("#tabfirst li.tabin").removeClass("tabin");
    //当前标签所对应的内容区域显示出来
    //$("div").eq(index).addClass("contentin");
    $("div.contentfirst:eq(" + index + ")").addClass("contentin");
    liNode.addClass("tabin"); 
   },300);   
  }).mouseout(html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(){
   clearTimeout(timoutid); 
  });
 });
 
 //在整个页面装入完成后,标签效果2的内容区域需要装入静态的html页面内容
 $("#realcontent").load("TabLoad.html");
 //找到标签2效果对应的三个标签,注册鼠标点击事件
 $("#tabsecond li").each(html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(index){
  $(this).click(html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>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图片绑定html" title=ajax>ajax请求开始和交互结束的事件
 $("#contentsecond img").bind("html" title=ajax>ajaxStart",html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(){
  //把div里面的内容清空
  $("#realcontent").html("");
  //整个页面中任意html" title=ajax>ajax交互开始前,html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function中的内容会被执行
  $(this).show();
 }).bind("html" title=ajax>ajaxStop",html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function(){
  //整个页面中任意html" title=ajax>ajax交互结束后,html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>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方法的那个html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function的内容被每一个元素执行。同时这个html" title=class>class="tags" href="/tags/FUNCTION.html" title=function>function还可以接收到一个参数,表示这个元素的索引值。 JQuery中的很多方法也用到了each
6.eq方法可以根据索引值只得到JQuery对象中包含的多个元素中的某一个元素,并仍然返回元素对应的新JQuery对象。
7.选择器中使用eq,例如$(“div:eq(1)”)
8.addClass和removeClass方法用于添加和移除元素的html" title=class>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.html" title=ajax>ajaxStart,html" title=ajax>ajaxStop对应html" title=ajax>ajax交互开始前和结束后的事件,给某一个节点注册了这两个事件后,当前页面的html" title=ajax>ajax交互开始前和结束后,就会执行指定的方法。
 


http://www.niftyadmin.cn/n/1732234.html

相关文章

《从零构建前后分离web项目》:开篇 - 纵观WEB历史演变

开篇 &#xff1a; 纵观WEB历史演变 在校学习和几年工作工作中不知不觉经历了一半的 WEB 历史演变、对近几年的发展比较了解&#xff0c;结合经验聊聊 WEB 发展历史。 演变不易&#xff0c;但也是必然&#xff0c;因为为人始终要进步。 WEB 的发展史 一、开山鼻祖 - 石器时代…

腾讯校招前端开发笔试初试总结| 掘金技术征文

作者&#xff1a;Chacha 今天来总结下9月5号做的前端笔试题和9月16号的腾讯初试&#xff0c;这段时间真的没怎么准备面试和笔试&#xff0c;可想而知&#xff0c;腾讯的面试肯定是挂了。 首先是9月5号的腾讯校招笔试题&#xff0c;在做笔试之前&#xff0c;我都没怎么去刷题&a…

理解异步之美:Promise与async await(一)

你可能会放出一个怪物 异步与同步相比&#xff0c;最难以掌控的就是异步的任务会什么时候完成和完成之后的回调问题&#xff0c; 难以掌控的触发状态&#xff0c;让你自己写的代码当时还可以读懂&#xff0c;但是过几天、半个月之后如果不重新盘一边逻辑&#xff0c;你哪知道…

vue中前进刷新、后退缓存用户浏览数据和浏览位置的实践

vue中&#xff0c;我们所要实现的一个场景就是&#xff1a; 1.搜索页面>到搜索结果页时&#xff0c;搜索结果页面要重新获取数据&#xff0c; 2.搜索结果页面>点击进入详情页>从详情页返回列表页时&#xff0c;要保存上次已经加载的数据和自动还原上次的浏览位置。 最…

【转】JQuery实现页面随滚动条滚动而动态加载内容的效果

新浪微博有这个功能,刚才思考一下 ,简单的写了一下实现方法,代码是Js的.无可否认,这种方式应该算是web2.0的产物,在用户体验上具备很好的感受,除了微博在使用该方式外,另外我还发现有几个其他性质的网站也在用这种方式,原因是他们的网站页面比较长,所以用户在浏览的时候随着滚动…

小程序组件-仿微信通讯录

效果图因为是使用的手机录屏&#xff0c;视频格式为MP4&#xff0c;上传到文章时发现只支持图片&#xff0c;还好电脑自动录屏功能&#xff0c;所以简单的录制了一下&#xff0c;完后又提示只能4M&#xff0c;只能再去压缩图片&#xff0c;所以画质略渣&#xff0c;各位客官讲究…

JQuery实现Ajax加载图片

最近在学习JQuery&#xff0c;想从原理上模拟一下无刷新的相册浏览。最先想到的思路是利用缓存&#xff0c;也就是先显示提示消息&#xff0c;然后get图片&#xff0c;在get完的时候回调&#xff0c;将img标签的src改掉&#xff0c;由于刚刚get过&#xff0c;有了缓存&#xff…

[计算机网络] - 从英雄联盟,看数据包何去何从?

写在前面 我们总是在说TCP/IP协议。HTTP头怎么怎么样&#xff1b;TCP头怎么怎么样&#xff1b;IP头怎么怎么样&#xff1b;MAC头怎么怎么样。不过话又说回来&#xff0c;计算机网络的问题&#xff0c;大多都是问这些。深入了解这部分内容&#xff0c;的确是最优解。 不过作为…