• 导航切换


          引言:为什么不仅仅做独立的选项卡为一个独立的网页,然后通过点击不同的标签来在不同的页面跳转来达到这个效果?“这样代码可能会简单一些,是的。但是这样每个独立的”页面“视图将会实际上是一个新加载的网页,跨视图更难保存信息,并把这个特征融入一个更大的UI设计。另外,所谓的”单页应用“正在变得非常流行——尤其是移动网页UI——因为把一切的服务放在一个单独的文件上可以减少HTTP请求的数量来浏览所有内容,从而提高性能。

    在今天之前我做页面导航,即时单页导航也是知道导航是几个,然后根据导航的index或者eq来显示对应的content。今天看见了一个包装的导航切换,十分喜欢,大家看看吧,特别是js部分:

    html:

    <body>
    <section class="info-box">
    <ul>
    <li>
    <a href="#" class="active">Tab 1</a>
    </li>
    <li>
    <a href="#">Tab 2</a>
    </li>
    <li>
    <a href="#">Tab 3</a>
    </li>
    <li>
    <a href="#">Tab 4</a>
    </li>
    </ul>
    <div class="panels">
    <article class="active-panel">
    <h2>第一个导航</h2>

    <p>第一内容随便写,撒旧社会开会撒谎好多了卡号电话回访垃圾分类</p>
    </article>
    <article>
    <h2>第二个导航</h2>

    <p>第二哈哈和哈哈哈卡的很临时卡记录都科技计算机阿富汗货发票;发建安街</p>
    </article>
    <article>
    <h2>第三个导航</h2>

    <p>第三看哈回复哈回复看拉菲hi哦网哈FIFA历史11埃里克森风即发生符合;浪费了</p>

    <ol>
    <li>沙河</li>
    <li>长江</li>
    <li>黄河</li>
    </ol>
    </article>
    <article>
    <h2>第四个导航</h2>

    <p>第四想不出打开记录均砂浆的</p>

    <ol>
    <li>奥卡福两款发建安街</li>
    <li>海外</li>
    <li>岛上</li>
    </ol>
    </article>
    </div>
    </section>
    <script type="text/javascript">
    var tabs = document.querySelectorAll('.info-box li a');
    var panels = document.querySelectorAll('.info-box article');

    for(i = 0; i < tabs.length; i++) {
    var tab = tabs[i];
    setTabHandler(tab, i);
    }

    function setTabHandler(tab, tabPos) {
    tab.onclick = function() {
    for(i = 0; i < tabs.length; i++) {
    if(tabs[i].getAttribute('class')) {
    tabs[i].removeAttribute('class');
    }
    }

    tab.setAttribute('class', 'active');

    for(i = 0; i < panels.length; i++) {
    if(panels[i].getAttribute('class')) {
    panels[i].removeAttribute('class');
    }
    }

    panels[tabPos].setAttribute('class', 'active-panel');
    }
    }
    </script>
    </body>

    css:

    html {
    font-family: sans-serif;
    }

    * {
    box-sizing: border-box;
    }

    body {
    margin: 0;
    }
    .info-box {
    400px;
    height: 400px;
    margin: 0 auto;
    }
    .info-box ul {
    padding-left: 0;
    margin-top: 0;
    }
    .info-box li {
    float: left;
    list-style-type: none;
    100px;
    border: 1px solid #E5E5E5;
    }

    .info-box li a {
    display: inline-block;
    text-decoration: none;
    100%;
    line-height: 3;
    background-color: red;
    color: black;
    text-align: center;
    }
    .info-box li a:focus, .info-box li a:hover {
    background-color: #a60000;
    color: white;
    }

    .info-box li a.active {
    background-color: #a60000;
    color: white;
    }
    .info-box .panels {
    height: 352px;
    position: relative;
    clear: both;
    }
    .info-box article {
    100%;
    position: absolute;
    top: 0;
    left: 0;
    height: 352px;
    padding: 10px;
    color: white;
    background-color: #a60000;
    }
    .info-box article:first-child{
    background:deepskyblue;
    }
    .info-box article:first-child+article{
    background:blue;
    }
    .info-box article:first-child+article+article{
    background:greenyellow;
    }
    .info-box article:first-child+article+article+article{
    background:pink;
    }

    .info-box .active-panel {
    z-index: 1;
    }

    就是这么酷炫 很喜欢 我要引用到项目上。

  • 相关阅读:
    声明式事务
    创建索引之代码开发
    Lucene实现全文检索的流程
    9)添加对话框的按键处理消息
    8)添加一个新的非模态对话框
    7)给tab下面添加一个子非模态对话框
    6)对(5)的代码进行一下修改 但是功能不变
    5)添加一个tab
    4)创建一个简单页面
    3)为啥(2)的代码那么写的原因
  • 原文地址:https://www.cnblogs.com/wangxiaoer5200/p/9024744.html
Copyright © 2020-2023  润新知