美文网首页
vue-cli 移动端web-app可滑动标题栏(类似腾讯视频精

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

作者: 郝艳峰Vip | 来源:发表于2018-12-03 13:52 被阅读0次

    前沿:


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

    由于需要灵活控制(我不想写那么多的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>
    

    结束语:

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/qjrycqtx.html