用html+css+js實現選項卡轉場效果

來源:互聯網
上載者:User

標籤:classname   html   class   寫代碼   綜合   length   gray   ++   rds   

文章轉載自:http://tongling.github.io/JSCards/

用html+css+js實現選項卡轉場效果

使用之前學過的綜合知識,實現一個新聞門戶網站上的常見選項卡效果:

文字素材:房產:    275萬購昌平鄰鐵三居 總價20萬買一居    200萬內購五環三居 140萬安家東三環    北京首現零首付樓盤 53萬購東5環50平    京樓盤直降5000 中信府 公園樓王現房家居:     40平出租屋大改造 美少女的混搭小窩     經典清新簡歐愛家 90平老房煥發新生     新中式的酷色溫情 66平撞色活潑家居     瓷磚就像選好老婆 衛生間煙道的設計二手房:     通州豪華3居260萬 二環稀缺2居250w甩     西3環通透2居290萬 130萬2居限量搶購     黃城根小學學區僅260萬 121平70萬拋!     獨家別墅280萬 蘇州橋2居優惠價248萬

先分析基本思路。首先編寫HTML,然後再載入樣式,最後用JS修改相應的DOM,達到更改選項卡和內容的目的。

一、HTML頁面配置

HTML顯示的是所有與文字有關的資訊,所以在這個頁面中與文字有關的資訊為上面選項卡的三個標題,以及選項卡的內容。 於是決定標題使用<ul> <li>布局,內容使用<div>布局。編寫代碼如下: 

現在展示出來的樣式是這樣的:

CSS樣式

要製作成所示的選項卡樣式,幾個地方需要注意: 1、整個選項卡的樣式設定 2、選項卡標題的樣式設定 3、選項卡內容的樣式設定 4、只能顯示一個選項卡的內容,其他選項卡內容隱藏。

寫完以後,效果就出來啦。

JavaScript實現選項卡切換

1、首先需要擷取選項卡標題和選項卡內容 2、選項卡內容有三個,需要迴圈遍曆來操作,得知哪個選項卡和哪個選項內容匹配。 3、通過改變DOM的css類名稱,當前點擊的選項卡顯示,其它隱藏。 

完整代碼:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title> 選項卡</title><style type="text/css">/* CSS樣式製作 */   *{padding:0px; margin:0px;}  a{ text-decoration:none; color:black;}  a:hover{text-decoration:none; color:#336699;}   #tab{width:270px; padding:5px;height:150px;margin:20px;}   #tab ul{list-style:none; display:;height:30px;line-height:30px;        border-bottom:2px #C88 solid;}   #tab ul li{background:#FFF;cursor:pointer;float:left;    list-style:none height:29px; line-height:29px;padding:0px 10px;    margin:0px 10px; border:1px solid #BBB; border-bottom:2px solid #C88;}   #tab ul li.on{border-top:2px solid gray; border-bottom:2px solid #FFF;}   #tab div{height:100px;width:250px; line-height:24px;border-top:none;              padding:1px; border:1px solid #336699;padding:10px;}   .hide{display:none;}</style>    <script type="text/javascript">    // JS實現選項卡切換    window.onload = function(){    var myTab = document.getElementById("tab");    //整個div    var myUl = myTab.getElementsByTagName("ul")[0];//一個節點    var myLi = myUl.getElementsByTagName("li");    //數組    var myDiv = myTab.getElementsByTagName("div"); //數組    for(var i = 0; i<myLi.length;i++){        myLi[i].index = i;        myLi[i].onclick = function(){            for(var j = 0; j < myLi.length; j++){                myLi[j].className="off";                myDiv[j].className = "hide";            }            this.className = "on";            myDiv[this.index].className = "show";        }      }    }    </script></head><body><!-- HTML頁面配置 --><div id = "tab">        <ul>        <li class="off">房產</li>        <li class="on">家居</li>        <li class="off">二手房</li>        </ul>    <div id="firstPage" class="hide">            <a href = "#">275萬購昌平鄰鐵三居 總價20萬買一居</a><br/>            <a href = "#">200萬內購五環三居 140萬安家東三環</a><br/>            <a href = "#">北京首現零首付樓盤 53萬購東5環50平</a><br/>            <a href = "#">京樓盤直降5000 中信府 公園樓王現房</a><br/>    </div>    <div id="secondPage" class="show">            <a href = "#">40平出租屋大改造 美少女的混搭小窩</a><br/>            <a href = "#">經典清新簡歐愛家 90平老房煥發新生</a><br/>            <a href = "#">新中式的酷色溫情 66平撞色活潑家居</a><br/>            <a href = "#">瓷磚就像選好老婆 衛生間煙道的設計</a><br/>    </div>    <div id="thirdPage" class = "hide">            <a href = "#">通州豪華3居260萬 二環稀缺2居250w甩</a><br/>            <a href = "#">西3環通透2居290萬 130萬2居限量搶購</a><br/>            <a href = "#">黃城根小學學區僅260萬 121平70萬拋!</a><br/>            <a href = "#">獨家別墅280萬 蘇州橋2居優惠價248萬</a><br/>    </div></div></body></html>

用html+css+js實現選項卡轉場效果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.