(移动端)简单的顶部导航栏

话不多说,依旧先上图

代码量不大,有轻微动画效果,不支持左右滑动,切换流畅,具体代码如下:

  • HTML:

    <div class="nav-box">
        <div class="nav-tap">
            <a class="nav-tap-item" onclick="tabChange(0)">派单中</a>
            <a class="nav-tap-item nav-tap-item-on" onclick="tabChange(1)">服务中</a>
            <a class="nav-tap-item" onclick="tabChange(2)">已完成</a>
        </div>
        <div class="nav-body">
            <div id="tap1" class="nav-body-item" hidden>
                /* 第一个页面内容 */
            </div>
            <div id="tap2" class="nav-body-item">
                /* 第二个页面内容 */
            </div>
            <div id="tap3" class="nav-body-item" hidden>
                /* 第三个页面内容 */
            </div>
        </div>
    </div>

默认显示中间那页,由hidden控制隐藏,三个导航栏都设置click事件,调用js文件里的函数,并传入固定的参数。

  • CSS:

.nav-box{
    width: 100%;
    height: 100%;
    position: relative;
}
.nav-tap{
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    position: absolute;
    top: 0;
    font-size: 1rem;
    background-color: #fff;
    padding: 0 4%;
    box-sizing: border-box;
}
.nav-tap-item{
    width: 100%;
    display: block;
    color:#9a9a9a;
    font-size: 1rem;
    padding: .8rem 0;
    text-align: center;
    transition: .3s;
}
.nav-tap-item-on{
    font-size: 1.1rem;
    color: #4a90e2;
    position: relative;
}
.nav-tap-item-on:after{
    content: '';
    width: 80%;
    height: 4px;
    background-color: #4a90e2;
    position: absolute;
    bottom: 0;
    left:10%;
}
.nav-body{
    margin-top: 14%;
}

动画效果由transition属性控制,我这里的字体单位是rem,详细内容请自行查询移动端的rem布局。

  • JavaScript:

/**
 * 控制点击顶部导航栏变换
 * @param tabNum
 */
function tabChange(tabNum){
    $(".nav-tap-item").eq(tabNum).addClass('nav-tap-item-on').siblings('.nav-tap-item').removeClass('nav-tap-item-on');
    $(".nav-body-item").eq(tabNum).show().siblings().hide();
}

用的是jQuery库,eq选取同一类名的元素,为其添加类名,变为被选中的状态,siblings选取除当前选中的元素外的其他同名元素,并移除选中态的类名,下面用相同方法控制页面的显隐。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值