Ajax标签导航效果(仿网易首页)_AJAX相关

根据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";
}

}
//-->

时间: 2024-11-30 19:34:38

Ajax标签导航效果(仿网易首页)_AJAX相关的相关文章

Ajax标签导航效果(仿网易首页)

ajax 根据yaohaixiao的Ajax标签导航效果:http://www.blueidea.com/tech/web/2006/4144.asp改进.效果:http://www.lorlo.com/tab.html主要是改了JS:[复制此代码]CODE:<!-- function getObject(objectId) {      if(document.getElementById && document.getElementById(objectId)) {     //

雅虎、网易ajax标签导航效果实现

ajax|导航|雅虎 经过多次改进,可以在普通网站上直接使用了,现在发布源程序下载(编码为utf-8,改为gb3212的方法是:用记事本打开,另存时选择相应的编码),希望对大家有用(虽然不一定实用).因为只是标签导航,所有内容还会在频道页中体现,所在全部用AJAX读取. 功能的实现思路: 雅虎中国 单击触发 <A>块锁定:a{display:block;height:16px;}/*将A锁定为块级,再定义高度和宽度*/ 再次单击弹出链接:在<A>标记的onclick事件中需要执行读

Ajax标签导航效果

ajax function.js   <!--function getObject(objectId) {     if(document.getElementById && document.getElementById(objectId)) {    // W3C DOM       return document.getElementById(objectId);     }      else if (document.all && document.all(

Ajax学习笔记---3种Ajax的实现方法【推荐】_AJAX相关

Ajax:  Asynchronous JavaScript and Xml , 异步js脚本和xml , 常用来实现页面局部的异步刷新, 对提高用户体验有很大帮助. Xml在多语言时较有优势, 但Ajax技术实际上较多采用Json对象而不是Xml来处理数据. (一) Ajax历史....了解性知识 Ajax归属于Web前端开发技术, 与javascript有着异常紧密的联系. Ajax就是一种实现异步通信无刷新的技术, 而这种技术可以有很多种实现方式. 浏览器的鼻祖网景(NetScape)公司

深入理解ajax系列第一篇之XHR对象_AJAX相关

前面的话 ajax是asynchronous javascript and XML的简写,中文翻译是异步的javascript和XML,这一技术能够向服务器请求额外的数据而无须卸载页面,会带来更好的用户体验.虽然名字中包含XML,但ajax通信与数据格式无关.下面将详细介绍ajax的内容  创建 ajax技术的核心是XMLHttpRequest对象(简称XHR),这是由微软首先引入的一个特性,其他浏览器提供商后来都提供了相同的实现.XHR为向服务器发送请求和解析服务器响应提供了流畅的接口,能够以

Ajax实现简单下拉选项效果【推荐】_AJAX相关

基本都是固定步骤!主要在JAVASCRIPT和PHP中的操作 1.HTML代码里就只有两个SELECT标签如下: <select id="province"> <option>请选择</option> </select> <select id="city"> <option>请选择</option> </select> 2.Javascript中进行创建选项和执行AJAX

jquery实现固定顶部导航效果(仿蘑菇街)_jquery

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

仿网易首页选项卡

新闻1 新闻2 新闻3 新闻4 新闻列表1 新闻列表2 新闻列表3 新闻列表4 新闻1 新闻2 新闻3 新闻4 新闻列表1 新闻列表2 新闻列表3 新闻列表4

Ajax技术(WEB无刷新提交数据)_AJAX相关

Ajax内部交流文档一.使用Ajax的主要原因  1.通过适当的Ajax应用达到更好的用户体验:  2.把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的.     二.引用  Ajax这个概念的最早提出者Jesse James Garrett认为:  Ajax是Asynchronous JavaScript and XML的缩写.  Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在