zoukankan      html  css  js  c++  java
  • vue监听滚动事件,元素顶部吸附实现

    需求:头部搜索模块默认如下图1,但是当滚动条移动到下方看不见导航栏时,需要将搜索模块简化并吸附到顶部如下图2

    图1:

    图2:

     

     解决方案:监听滚动事件,通过给搜索模块顶级元素增减class来切换样式

    html和css:

    <!--isFixed默认未false,如果滚动监听触发事件使得isFixed为true的话,就添加class is-fixed 吸附到顶部,监听触发为false则返回还完原来的class no-fixed-->
    <div id="boxFixed" :class="[isFixed ? 'is-Fixed' : 'no-fixed']">  
          这个是要滚动到顶部吸附的元素
    </div>
    <style rel="stylesheet" lang="css">
    .no-fixed{
      //这里写默认的样式
    }
    .is-Fixed{
    //这里是吸附顶部的样式
         100%;
        background-color: #fff;
        z-index: 100;
        position: fixed;
        top: 0;
    }
    </style>

    js方法:通过scroll监听页面滚动

     data: function() {
           return {
            isFixed:false //默认为false
          }
    mounted(){
        window.addEventListener('scroll',this.handleScroll) // 监听滚动事件,然后用handleScroll这个方法进行相应的处理
    },
    handleScroll(){
    let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop // 滚动条偏移量
    let offsetTop = document.querySelector('#boxFixed').offsetTop; // 要滚动到顶部吸附的元素的偏移量
    this.isFixed = scrollTop > offsetTop+100 ? true : false; // 如果滚动到了预定位置,this.isFixed就为true,否则为false
    }
  • 相关阅读:
    进制转换
    01背包基础
    6-14 Inspector s Dilemma uva12118(欧拉道路)
    9-4 Unidirectional TSP uva116 (DP)
    8-4 奖品的价值 uva11491(贪心)
    9-1 A Spy in the Metro uva1025 城市里的间谍 (DP)
    8-3 Bits Equalizer uva12545
    8-2 Party Games uva1610 (贪心)
    自动发邮件功能
    窗口截图.py
  • 原文地址:https://www.cnblogs.com/webwangjie/p/14246700.html
Copyright © 2011-2022 走看看