美文网首页
BOM-scroll系列

BOM-scroll系列

作者: GoFzy | 来源:发表于2019-03-17 17:25 被阅读0次

    一、scrollWidth与scrollHeight

      当标签内容大于标签高宽时:内容实际的高宽(不包括边框)
      如果标签中内容为空或者内容高宽小于标签高宽: srcollWidth = offsetWidth - border;

    二、scrollTop与scrollLeft

      scrollTop:对象向上卷曲出去的距离
      scrollLeft:对象向左卷曲出去的距离
      使用一个小案例来说明scrollTop的作用,代码如下。当滑动#dv对象时,浏览器就可以利用scrollTop属性显示#dv对象滑动距离:

    <!DOCTYPE html>
    <html>
        <head>
            <title>实时获取scroll值</title>
            <style>
                * {
                    margin: 0;
                    padding: 0;
                }
                #dv {
                    width: 200px;
                    height: 200px;
                    border: 1px solid red;
                    overflow: auto;
                }
            </style>
        </head>
        <body>
            <button id="btn">scroll</button>
            <div id="dv">1111111111
                111111111111
                111111111111111
                1111111111111
                1111111111111
                11111111111111
                11111111111
                111111111111
                1111111111111
                111111111111
                1111111111111
            </div>
        </body>
        <script>
            function my$(id){
                return document.getElementById(id);
            }
            my$('dv').onscroll = function(){
                console.log(this.scrollTop);
            }
        </script>
    </html>
    
    srcoll案例
      在计算整个页面的滑动距离时scrollTop与scrollLeft的兼容问题
      IE
        对于没有doctype声明的页面,使用 document.body.scrollTop 或 document.documentElement.scrollTop;
        对于有doctype声明的页面,则使用 document.documentElement.scrollTop;
      Chrome、Firefox
        对于没有doctype声明的页面,使用 document.body.scrollTop 来获取 scrollTop高度 ;
        对于有doctype声明的页面,则使用 document.documentElement.scrollTop;
      Safari:
        safari 比较特别,有自己获取scrollTop的函数 : window.pageYOffset ;
      因此,为了兼容所有浏览器,封装一个函数,去获取页面向上卷曲出去的距离和向左卷曲出去的距离
    function getScroll(){
      return {
        left:window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0,
        top:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0
      }
    }
    

    相关文章

      网友评论

          本文标题:BOM-scroll系列

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