zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    JavaScript中的setMonth()方法的小问题 解决:setMonth(month, 1)
    Bootstrap的Model源码详细注释 (转)
    中检测到有潜在危险的 Request.Form 值。
    JQuery EasyUI DataGrid获取当前行
    VS 开发必用插件
    C# MVC模式 404 500页面设置方法
    (转)高性能网页开发的14条军规
    (转)mysql百万级以上查询优化
    Win7/Win8安装"我们无法创建新的分区,也找不到现有的分区"的解决方法
    SQL Server2008 删除登录记录
  • 原文地址:https://www.cnblogs.com/naturl/p/10905666.html
Copyright © 2011-2022 走看看