当前位置: 首页 > 图文教程 > 网络编程 > AJAX技术 > Ajax标签导航效果(仿网易首页)

AJAX技术
AJAX 用户注册时的应用实例
ajax readyState的五种状态详解
php AJAX POST的使用实例代码
Ajax 用户名验证是否存在
Ajax+PHP简单基础入门实例教程
AJAX 异步传输数据的问题
ASP AJAX 静态分页
js装载xml文件然后发向服务器的实现代码
完成了AJAX树附原理分析
AJAX 支持搜索引擎问题分析
ajax Suggest类似google的搜索提示效果
Ajax 框架学习笔记
用ajax xml的数据读取的HelloWorld程序
Ajax 表单验证 实现代码
Ajax request response 乱码解决方法
AJAX 随记
ajax 乱码的一种解决方法
ajax session过期问题的几个解决方案
四步学会 Ajax
Ajax异步(请求)提交类 支持跨域

AJAX技术 中的 Ajax标签导航效果(仿网易首页)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-13   浏览: 54 ::
收藏到网摘: n/a

根据yaohaixiao的Ajax标签导航效果:http://www.blueidea.com/tech/web/2006/4144.asp改进。
效果:
http://www.lorlo.com/tab.html
主要是改了JS:
复制代码 代码如下:

<!--
function getObject(objectId) {
if(document.getElementById && document.getElementById(objectId)) {
// W3C DOM
return document.getElementById(objectId);
}
else if (document.all && document.all(objectId)) {
// MSIE 4 DOM
return document.all(objectId);
}
else if (document.layers && document.layers[objectId]) {
// NN 4 DOM.. note: this won't find nested layers
return document.layers[objectId];
}
else {
return false;
}
}
var responsecont;
var xmlHttp;
var requestType;
var newsstring;
var ajccache=new Object();//缓存已访问的数据页面
var url;
var MouseDelayTime=150;//鼠标感应延迟
var waitInterval;
function CreateXMLHttpRequest(){
// Initialize Mozilla XMLHttpRequest object
if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
// Initialize for IE/Windows ActiveX version
else if (window.ActiveXObject) {
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
catch (e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){newsstring = "<div class='loading'>Loading rquest content fail, Please try it again latter...</div>";}
}
}
}
function getnews(tagid,x){
url = "tab/"+tagid+'_'+x+'.html';
// var loadstatustext="<div class='loading'><img src='images/loading.gif' /> Loading request content, please wait...</div>";
requestType = tagid;

if(ajccache[url]==null){
CreateXMLHttpRequest();
// getObject(requestType+'_cnt').innerHTML = loadstatustext;
xmlHttp.onreadystatechange = processRequestChange;
xmlHttp.open("GET", url, true);
xmlHttp.setRequestHeader("If-Modified-Since","0");
xmlHttp.send(null);
}
else
{ shownews(requestType,ajccache[url]); }
}
function processRequestChange(){
// only if xmlHttp shows "complete"
if (xmlHttp.readyState == 4){
// only http 200 to process
if (window.location.href.indexOf("http")==-1 || xmlHttp.status == 200){
newsstring = xmlHttp.responseText;
//inject centent to tab-pane
shownews(requestType,newsstring);
ajccache[url]=newsstring; //把已访问的数据缓存下来
}
}
}
function shownews(requestType,newsstring){
//<![CDATA[
responsecont = getObject(requestType+'_cnt');
responsecont.innerHTML = newsstring;
//]]>
}
function TabNews(tagid,x){
for (var i=1;i<=7;i+=2) {
if (i == x) {
getObject(tagid+i).className="tabactive"+i;
if(i!=1){
getObject(tagid+(i-1)).style.display="none";
if(i!=7){
getObject(tagid+(i+1)).style.display="none";
}
}
if(i==1){
getObject(tagid+"2").style.display="none";
}
try{
getnews(tagid,i);
}
catch(e){
alert(e);
}
}
else
{
getObject(tagid+i).className="";
if(i!=7){
getObject(tagid+(i+1)).style.display="block";
}
}
}
}
var idn;
function aet(objid,tagid,etp){ //为LI加上事件 objid:容器ID tagid:组别 etp:触发类型 0-onmouseover 1-onclick
var iif=0;
var lis=objid.getElementsByTagName('li');
requestType=tagid;
url = "tab/"+requestType+"_1.html";
ajccache[url]=getObject(requestType+'_cnt').innerHTML;
for(var iy=0;iy<lis.length;iy++){
if(iif==0){
iif=1;
with(lis[iy]){
if(etp==0){
lis[iy].onmouseover=function(){
if(this.status=="active") return;
requestType=attributes.getNamedItem('id').value.substring(0, attributes.getNamedItem('id').value.length-1);
idn=parseInt(attributes.getNamedItem('id').value.substring(attributes.getNamedItem('id').value.length-1, attributes.getNamedItem('id').value.length));
clearTimeout(waitInterval);
waitInterval=window.setTimeout("TabNews(requestType,idn);",MouseDelayTime);
}
lis[iy].onmouseout=function(){if(this.status=="active") return;clearTimeout(waitInterval);}
}
if(etp==1){
lis[iy].onmouseover=function(){}
lis[iy].onclick=function(){
if(this.status=="active") return;
requestType=attributes.getNamedItem('id').value.substring(0, attributes.getNamedItem('id').value.length-1);
idn=parseInt(attributes.getNamedItem('id').value.substring(attributes.getNamedItem('id').value.length-1, attributes.getNamedItem('id').value.length));
var loadstatustext="<div class='loading'><img src='images/loading.gif' /> Loading request content, please wait...</div>";
getObject(requestType+'_cnt').innerHTML = loadstatustext;
TabNews(requestType,idn);
}}}}
else{iif=0;}
}
}

function ata(objid){ //一个无关的函数,为解决一个链接问题
var as=objid.getElementsByTagName('a');
for(var i=0;i<as.length;i++){
as[i].pathname="/showfile.html";
}
}
//-->