• h5滚动页面固定导航


    1、需要效果

    2、实现方法

    (1)原生js实现

    document.addEventListener('scroll', function (event) { 
        var scrollDamo = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
        if (scrollDamo >= 350) {    // 触发的位置
            document.getElementsByClassName('cont-info-kc')[0].style.cssText =  'position:fixed;';
        } else {
            document.getElementsByClassName('cont-info-kc')[0].style.cssText = 'position:static;';
        }
    });

     html

    <div class="cont-info-kc"></div>

    (2) vue实现

    <div style="height:16px;background:#F4F4F4" id='testNavBar'></div>
    <div id="cont-info-kc" :class='{ fixedNavbar: isfixTab }'>
       <ul>
         <li :class="period==-1 ? 'secactive': ''" @click.stop="getsetion(-1)">全部</li>
         <li :class="period==155 ? 'secactive': ''" @click.stop="getsetion(155)">好的</li>
         <li :class="period==156 ? 'secactive': ''" @click.stop="getsetion(156)">晴天</li>
         <li :class="period==157 ? 'secactive': ''" @click.stop="getsetion(157)">需要</li>
       </ul>
       <a @click.stop="moreClick" style="line-height:50px;" v-show="!tongyongIsshow">更多</a>
    </div>
    data () {
        return {
            isfixTab: false
        }
    },
    
    methods: {
    
        // 先分别获得id为testNavBar的元素距离顶部的距离和页面滚动的距离
        // 比较他们的大小来确定是否添加fixedNavbar样式
        handleTab() {
          var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
          var offsetTop = document.querySelector('#testNavBar').offsetTop
          scrollTop > offsetTop ? this.isfixTab = true : this.isfixTab = false
        }
        
    },
    
    // 监听页面滚动
    mounted () {
        window.addEventListener('scroll', this.handleTab, true)
    },
    
    //离开时清除滚动监听
    beforeRouteLeave (to, from, next) {
       window.removeEventListener('scroll', this.handleTab, true)
       next()
    }
    .fixedNavbar{
        position: fixed;
        top: 2.25rem;
        left: 0;
        width: 100%;
        border-top: 0.05rem solid #f5f5f5;
        border-bottom: 0.05rem solid #f5f5f5;
        background: #f5f5f5;
    }
  • 相关阅读:
    《刀塔传奇》
    SSH端口转发
    objective-c与c++的差异
    mysql 远程连接速度慢的解决方案
    maven
    automapper 自动映射 集成asp.net Core2.1
    swagger 集成asp.net Core2.1
    asp.net Core 跨域配置
    处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    SharedPreferences
  • 原文地址:https://www.cnblogs.com/lxn2/p/11907182.html
Copyright © 2020-2023  润新知