亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

原生js與jQuery實現簡單的tab切換特效對比

2019-11-20 11:57:50
字體:
來源:轉載
供稿:網友

tab頁簽通常適用于空間有限而內容較多同時兼顧頁面美觀度不給用戶一種信息過量視覺疲勞的情形。使用面非常廣,下面我們用兩種方法簡單實現之。

  首先,構建頁面元素。頁簽的可點擊部分我們通常用列表來承載,包括ul和ol,我們這里讓頁簽呈橫向分布,所以需要使之向左浮動。而頁簽內容部分使用div承載即可。另外,我們需要對具有共性的元素統一控制樣式和行為,所以就有了下面的dom結構:

<div id="main">      <ul id="tabbar" class="cl">        <li class="t1">t1</li>        <li class="def">t2</li>        <li class="def">t3</li>        <li class="def">t4</li>        <li class="def">t5</li>      </ul>      <div id="content">        <div class="cont t1">Hi !</div>        <div class="cont t2">I Like You!</div>        <div class="cont t3">Hello World!</div>        <div class="cont t4">How Are You?</div>        <div class="cont t5">I'm fine ,and you?</div>      </div> </div>

  ul左浮動以后,為了清除浮動對后續元素的影響,所以通過after偽類設置clear屬性,同時兼顧ie低版本加入zoom觸發ie haslayout。所以就有了下面的樣式:

html,body,div,ul,li{margin:0; padding:0; }.cl{zoom:1;}.cl:after{display:block; height:0; clear:both; visibility:hidden; overflow:hidden; content:'.';}ul{list-style:none;}    body{padding-top:100px; background:#eee; font-family:Microsoft YaHei, Arial, Helvetica, sans-serif;}#main{margin:0 auto; width:800px;}#main #tabbar{}#main #tabbar li,#main #content .cont{text-align:center; color:#fff;}#main #tabbar li{padding:0 20px; height:35px; line-height:35px; font-size:14px; cursor:pointer; float:left;}#main #content{height:350px; overflow:hidden; position:relative;}#main #content .cont{width:100%; height:350px; line-height:350px; font-size:48px; z-index:0; position:absolute;}#main #tabbar li.def{color:#333; background:#fff;}#main #tabbar li.t1,#main #content .cont.t1{color:#fff; background:#4e6b9c;}#main #tabbar li.t2,#main #content .cont.t2{color:#fff; background:#c52946;}#main #tabbar li.t3,#main #content .cont.t3{color:#fff; background:#33a6ff;}#main #tabbar li.t4,#main #content .cont.t4{color:#fff; background:#ffab4e;}#main #tabbar li.t5,#main #content .cont.t5{color:#fff; background:#64bccc;}

  html部分大致如此。

  采用原生js實現時,我們這里主要對每個li分別綁定點擊事件,通過點擊使當前內容頁顯示,其他內容頁隱藏,顯隱的過程通過定時器不斷增減內容的透明度直至完全隱藏或顯示。

window.onload = function(){  var tabs = document.getElementById("tabbar").getElementsByTagName("li");  var cont = document.getElementById("content").getElementsByTagName("div");  var len = cont.length;  var flag = true;    var fade = function(elem, callback, type){    type || (type = "in");    var px, timer;        if(type == "in")    {      px = 0;      timer = setInterval(function(){        px += 3;        if(px <= 100)        {          elem.style.opacity ? (elem.style.opacity = (px / 100)) : (elem.style["filter"] = "alpha(opacity=" + px + ")");        }        else        {          clearInterval(timer);          elem.style.opacity ? (elem.style.opacity = 1) : (elem.style["filter"] = "alpha(opacity=100)");          callback && callback(elem);        }      },10);    }    else    {      px = 100;      timer = setInterval(function(){        px -= 3;        if(px >= 0)        {          document.addEventListener ? (elem.style.opacity = (px / 100)) : (elem.style["filter"] = "alpha(opacity=" + px + ")");        }        else        {          clearInterval(timer);          elem.style.opacity ? (elem.style.opacity = 0) : (elem.style["filter"] = "alpha(opacity=0)");          callback && callback(elem);        }      },10);    }  }    for(var i = 0; i < len; i++)  {    cont[i].style.zIndex = len - i;    tabs[i].index = cont[i].index = i;    tabs[i].onclick = function(){      if(flag)      {        flag = false;        cont[this.index].style.display = "block";        fade(cont[this.index]);        for(var i = 0; i < len; i++)        {          tabs[i].className = "def";          if(tabs[i].index != this.index)          {            fade            (              cont[i],              function(elem)              {                elem.style.display = "none";                elem.className = "cont t" + (elem.index + 1);                flag = true;              },              "out"            );          }        }        this.className = "t" + (this.index + 1);      }    }  }};

  由上可見,其實使用原生js操作dom還是比較麻煩的,不然“write less,do more”的jQuery也不會誕生。下面用jQuery簡單實現:

$(function(){    var tabs = $("#tabbar li");    var cont = $("#content .cont");    var len = cont.length;        cont.each(function(inx, elem){$(elem).css("z-index", len - inx);}).andSelf().hide().andSelf().eq(1).show();        tabs.click(function(){      var inx = tabs.index(this);      tabs.removeAttr("class").addClass("def").andSelf().eq(inx + 1).addClass("t" + (inx + 1));      cont.fadeOut(300).not(this).andSelf().eq(inx).fadeIn(300);    });  });

  這個例子比較簡單,但卻很實用,當然實際工作中我們一般不會這樣去寫,我們通常會把以此為基礎去封裝一個可重用的控件,但基本思想不變。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品v天堂中文字幕| 国产精品久久久久久久久久| 亚洲欧美中文另类| 91av在线网站| 免费不卡在线观看av| 日韩成人激情影院| 91夜夜揉人人捏人人添红杏| 国产精品美女久久久久av超清| 久久久免费观看| 日韩精品视频免费专区在线播放| 日韩中文字幕免费看| 国产精品9999| 日韩专区中文字幕| 欧美高清第一页| 精品色蜜蜜精品视频在线观看| 91理论片午午论夜理片久久| www亚洲精品| 久久天天躁狠狠躁夜夜躁| 欧美日韩亚洲精品一区二区三区| 国产精品91在线观看| 亚洲国产欧美一区二区三区久久| 国产精品成人一区二区三区吃奶| 色偷偷av亚洲男人的天堂| 亚洲一区999| 日韩成人在线视频| 黑人狂躁日本妞一区二区三区| 欧美日韩第一视频| 九九视频这里只有精品| 亚洲综合国产精品| 国产精品扒开腿做爽爽爽的视频| 久久视频这里只有精品| 久久精品免费电影| 久久精品最新地址| 亚洲男人天堂古典| 国产精品一区av| 亚洲一级免费视频| 国产精品久久久久99| 51精品在线观看| 欧美性理论片在线观看片免费| 国产精品亚洲综合天堂夜夜| 热久久免费视频精品| 国产女人18毛片水18精品| 亚洲精品一二区| 国产精品久久一区| 国产精品久久久久久久久久新婚| 亚洲一区中文字幕| 中文字幕日韩av综合精品| 亚洲国产精品国自产拍av秋霞| 国产精品自产拍在线观看| 亚洲激情中文字幕| 欧美高清性猛交| 国产精品久久久久久久久久三级| 欧美精品在线免费播放| 亚洲国产精品va在线| 久久99热精品这里久久精品| 国产午夜精品久久久| 丝袜美腿精品国产二区| 日韩av毛片网| 亚洲国产精品va| 欧美专区国产专区| 欧美日韩一区二区三区在线免费观看| 欧美色视频日本版| 日韩不卡在线观看| 久久久精品国产亚洲| 亚洲精品欧美日韩| 青青草原成人在线视频| 日韩欧美aⅴ综合网站发布| 国产亚洲欧美日韩美女| 日韩av男人的天堂| 在线亚洲国产精品网| 久久色精品视频| 欧美理论电影在线播放| 亚洲欧美国内爽妇网| 九九热这里只有精品6| 久久亚洲欧美日韩精品专区| 精品偷拍各种wc美女嘘嘘| 中文国产成人精品久久一| 日韩成人在线视频观看| 色婷婷久久av| 亚洲精品一区中文| 欧美亚洲激情视频| 精品毛片三在线观看| 日韩免费观看在线观看| 日韩电影在线观看永久视频免费网站| 国产成人综合精品在线| 国产99视频精品免视看7| 色综合久久天天综线观看| 日韩影视在线观看| 国产精品三级在线| 亚洲一区二区自拍| 国产精品视频网站| 国产午夜精品视频免费不卡69堂| 国产69精品久久久久久| 欧美黄色免费网站| 欧美孕妇孕交黑巨大网站| 在线播放日韩av| 日韩天堂在线视频| 欧美日韩加勒比精品一区| 欧美尤物巨大精品爽| 亚洲人成欧美中文字幕| 91九色视频导航| 欧美视频国产精品| 国产亚洲福利一区| 亚洲aⅴ日韩av电影在线观看| 日韩成人激情在线| 亚洲第五色综合网| 狠狠躁夜夜躁人人爽超碰91| 精品女同一区二区三区在线播放| 国产欧美日韩最新| 日韩av中文在线| 国产亚洲精品久久久久久| 欧美精品videosex牲欧美| 亚洲一区二区日本| 日韩av电影在线免费播放| 久久久www成人免费精品张筱雨| 国产精品一区二区久久久| 久热精品在线视频| 91久久精品视频| 国产精品综合久久久| 最新国产成人av网站网址麻豆| 亚洲偷欧美偷国内偷| 5252色成人免费视频| 欧美—级a级欧美特级ar全黄| 欧美大片免费观看| 久久久久久久国产精品视频| 精品成人在线视频| 欧美壮男野外gaytube| 91免费视频国产| 国产欧美精品一区二区三区介绍| 日韩在线激情视频| 日本高清不卡在线| 亚洲一区二区精品| 久久久久亚洲精品| 国产丝袜一区二区三区免费视频| 精品一区电影国产| 国产精品男人的天堂| 97视频在线观看网址| www.久久色.com| 国产精品h在线观看| 亚洲精品自在久久| 日韩精品免费在线视频观看| 久久久爽爽爽美女图片| 国产精品久久久久久久久久尿| 亚洲成年人在线播放| 91高清在线免费观看| 国产精品影院在线观看| 亚洲一区二区在线| 国自产精品手机在线观看视频| 久久夜色精品国产| 国产精品自产拍高潮在线观看| 中文字幕日韩有码| 成人网在线观看| 欧洲永久精品大片ww免费漫画| 亚洲全黄一级网站| 亚洲第一福利在线观看| 日本午夜精品理论片a级appf发布| 中文字幕日韩精品有码视频| 国产精品扒开腿做爽爽爽的视频| 亚洲美女性生活视频| 97在线视频免费播放| 亚洲视频一区二区| 国产欧美一区二区三区久久人妖| 国产精品va在线播放| 亚洲2020天天堂在线观看|