本文实例讲述了jquery标签页效果实现方法。分享给大家供大家参考,具体如下:
第一个标签页中鼠标滑过显示不同的标签页,第二个标签页中点击不同标签加载其他页面中的内容,加载等待的图片缓慢隐藏,效果图如下:
/webroot/4.tab.html:
jquery实例4:标签页效果 标签1 标签2 标签3 我是内容1
我是内容2
我是内容3
装入完整页面 装入部分页面 从远程获取数据
/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:
这是一个静态页面 载入静态页面的内容。
载入静态页面的内容。
载入静态页面的内容。
载入静态页面的内容。
载入静态页面的内容。
载入静态页面的内容。
/webroot/tabload.jsp:
动态页面
1.这是一个动态页面的一部分
2.这是一个动态页面的一部分
3.这是一个动态页面的一部分
这部分不显示
本节学到的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程序设计有所帮助。