vue-cli 移动端web-app可滑动标题栏(类似腾讯视频精选滑动)

前沿:


这是好久之前的项目的需求了,需要做一个可滑动的标题栏,类似腾讯视频的导航栏,可以滑动。现在记录下来,方便以后使用。这里我并没有封装公共组件,需要的伙伴自行封装。

由于需要灵活控制(我不想写那么多的v-show,那位小伙伴有更好的解决方案,评论区留言),所以里边有引入jq,适配用的是rem.接下来上代码。

<template>
   <div id="app">
       <nav>
         <p v-for="(item,$index) in arr"
         :key="item"
         @click="toggle($index)"
         :class="{active:$index==active}"><span :class="{spanlast:$index==7}">{{item}}</span></p>
        </nav>
                <div class="main" style="display: block;">1</div>
                <div class="main">22</div>
                <div class="main">3</div>
                <div class="main">4</div>
                <div class="main">5</div>
                <div class="main">6</div>
                <div class="main">7</div>
                <div class="main">8</div>
  </div>
</template>
        <script>
export default {
  data() {
    return {
      active: 0,
      arr: [
        "联系我们",

        "安全保障",

        "组织信息",

        "备案信息",

        "联系大家",

        "联系朋友",

        "我的梦想",

        "挑战自我"
      ]
    };
  },
  methods: {
    toggle: function(index) {
      this.active = index;
      var mains = document.getElementsByClassName("main");
      for (var i = 0; i < mains.length; i++) {
        mains[i].style.display = "none";
        if (index == i) {
          mains[i].style.display = "block";
        }
      }
    }
  }
};
</script>
<style rel="stylesheet/scss" lang="scss">
            #app {
                width: 100%;
                border: 1px solid green;
            };
            #app nav {
                display: flex;
                height: .5rem;
                background: #ccc;
                overflow: auto;
                position: fixed;
                top: 0px;
            }

            

            #app p {

                font-size: .16rem;

                text-align: center;

                flex-shrink: 0;

                padding: 12px 0px;

            }

            

            span {

                padding: 0 0.2rem;

                border-right: 1px solid blue;

            }

            

            .spanlast {

                padding: 0 0.2rem;

                border-right: 1px solid #ccc;

            }

            

            #app p.active {

                color: red;

            }

            

            .main {

                width: 100%;

                border: 1px solid red;

                display: none;

                font-size: .12rem;

                word-break: break-all;

                margin-top: .5rem;

            }

        </style>

结束语:

这是全部代码,若有小伙伴觉得有什么改进的地方,评论区评论。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 春花落了一地 思念碎成纸 带灯夜凉风 惹得一丝清寂 自古愁怨多春雨 奈何自己太无趣 捡拾一花一露 转身已昨日
    启夏来晚了阅读 50评论 0 0
  • 风吹的叶子瑟瑟 翘首过往的样子 还记得 初见似曾见诈是欢喜 你我并肩而立 好似亲密 风吹的叶子早已落完 再见不知曾...
    果冻果呐阅读 184评论 0 4
  • 回忆犹如一场祭祀, 吾愿献吾之鲜血, 祭奠那往昔颤栗而又悔恨的灵魂。 两脚踢翻尘世界,一肩挑尽古今愁。 据说这两句...
    愚人传说阅读 2,295评论 32 27