• js 吸顶以及一些获取文档高度等小方法


    1.返回html文档元素
    document.documentElement


    2.文档的高度
    document.body.clientHeight


    3.html文档可视高度==页面可见区域的高度
    document.documentElement.clientHeight


    4.获取元素距离文档顶部的距离
    document.querySelector('.a').offsetTop


    5.获取元素距离可视区域顶部的距离(测试有偏差)left,bottom,right,分别距离页面左边,下边,右边
    document.querySelector('.a').getBoundingClientRect().top


    6.滚动条距离文档顶端的距离
    document.documentElement.scrollTop

     这是吸底的,吸顶把判断条件改成:sh < 200   200就是滚动条滑动多少距离开始吸顶

    (代码可复制直接看效果,因为谷歌每次滚动距离正负100,所以效果可能没那么好,如果有什么好方法,麻烦指教)

    *{margin: 0;padding: 0}
    .con{ 100px;height: 200px;border: 1px solid lime}
    .a{ 100%;height: 100px;background: lime;}
    .scroll_avtive{position: fixed;left: 0;bottom: 0;}

      

    <div class="con"></div>
    <div class="con"></div>
    <div class="con"></div>
    <div class="con"></div>
    <div class="con"></div>
    <div class="con"></div>
    <div class="con"></div>
    <div class="con"></div>
    <div class="con"></div>
    <div class="con"></div>
    <div class="a scroll_avtive"></div> <!--固定元素,其他div只为显示出滚动条-->
    <div class="foot con"></div>
    // 获取吸顶元素的高度,并转化为整数
        let fixedElH = parseInt(getComputedStyle(document.querySelector('.foot'),null).height)
        // 获取文档高度
        let dh = document.body.clientHeight
        
        //获取可视区域的高度
        let vh = document.documentElement.clientHeight
        //获取固定元素
        let a =  document.querySelector('.a')
        let scrollFunc=function(e){
            //获取滚动条滚动距离
            let sh = document.documentElement.scrollTop||document.body.scrollTop;
            // event事件兼容写法
            e=e || window.event;
            ////IE/Opera/Chrome浏览器使用的是wheelDelta,并且值为“正负120”(使用chrome是正负100)
            console.log(sh)
            if(e.wheelDelta){ 
                // document.documentElement.scrollTop+=50
               if(dh-sh < vh+fixedElH){
                    a.classList.remove('scroll_avtive')
                }else{
                    a.classList.add('scroll_avtive')
                }
                //Firefox
            }else if(e.detail){
    
            }
        }
        if(document.addEventListener){
            document.addEventListener('DOMMouseScroll',scrollFunc,false);
        }//W3C
        //IE/Opera/Chrome
        window.onmousewheel=document.onmousewheel=scrollFunc;
  • 相关阅读:
    [杂说]网络是基础生产工具
    这几天的工作
    [代码]大家来动动脑筋吧
    测试
    [基础] 如何使用extern和static限定符
    元宵节快乐
    复杂的“人"
    C# SMTP发邮件不支持465端口的解决方案,网易企业邮箱
    软件三层架构模型
    ASP.NET MVC 使用二级域名来注册Area区域
  • 原文地址:https://www.cnblogs.com/naturl/p/10905666.html
Copyright © 2020-2023  润新知