• javascript clientHeight scrollHeight offsetHeight高度


    由于最近项目需要自动跳转到网页某个无素的位置,所以抽了点时间来学习理清这几个高度的用处,最后的应例案例就是我需要达到的目的,虽然是很小的一个点,记录以备查用

    网页的全部面积,就是它的大小。通常情况下,网页的大小由内容和CSS样式表决定。
    viewport:浏览器窗口的大小,指在浏览器窗口中看到的那部分网页面积

    1:clientWidth/clientHeight

    clientHeight:元素内部的高度(单位像素),包含内边距(padding),但不包括水平滚动条、边框(border)和外边距。

    获取浏览器窗口的viewport大小
    document.documentElement.clientWidth,
    height: document.documentElement.clientHeight

     

    2:scrollWidth/scrollHeight

    Element.scrollHeight 这个只读属性是一个元素内容高度的度量,包括由于溢出导致的视图中不可见内容。

    获取网页的大小()
    document.documentElement.scrollWidth
    document.documentElement.scrollHeight

    判定元素是否滚动到底

    element.scrollHeight - element.scrollTop === element.clientHeight
    

      

    属性将会对值四舍五入取整。如果需要小数值,使用Element.getBoundingClientRect().

    3:scrollTop/scrollLeft


    Element.scrollTop 属性可以获取或设置一个元素的内容垂直滚动的像素数。
    一个元素的 scrollTop 值是这个元素的内容顶部(卷起来的)到它的视口可见内容(的顶部)的距离的度量。

    4:offsetWidth/offsetHeight

    元素内部的高度(单位像素),包含内边距(padding),但不包括水平滚动条、边框(border)和外边距。

     

    5:offsetTop/offsetTop

    获取元素绝位置

    offsetTop:元素的左上边与父容器(offsetParent对象)上边的距离
    offsetLeft:元素的左边与父容器(offsetParent对象)左边的距离

      function getElementLeft(element){
        var actualLeft = element.offsetLeft;
        var current = element.offsetParent;

        while (current !== null){
          actualLeft += current.offsetLeft;
          current = current.offsetParent;
        }

        return actualLeft;
      }

      function getElementTop(element){
        var actualTop = element.offsetTop;
        var current = element.offsetParent;

        while (current !== null){
          actualTop += current.offsetTop;
          current = current.offsetParent;
        }

        return actualTop;
      }


    6:获取元素位置方法2
       var X= this.getBoundingClientRect().left+document.documentElement.scrollLeft;

       var Y =this.getBoundingClientRect().top+document.documentElement.scrollTop;

    应用例子
    1:自动跳到网页无素所在的位置

    var ele=document.querySelector('#struct-whiteBgImage')
    
    document.documentElement.scrollTop=ele.getBoundingClientRect().top+document.documentElement.scrollTop-400
    

      

    人生旅途,边走边看...
  • 相关阅读:
    spring 心跳更新
    eclipse 控制台输出太多,显示不完整
    String
    iOS 开发之如何生成SDK(2)-----生成framework
    如何防止自己的APP被Hook
    JavaAPI类
    Java面向对象三大特性—封装
    Java类与对象
    Java基础易错点1
    Java数组反转及二维数组
  • 原文地址:https://www.cnblogs.com/dming4/p/15308726.html
Copyright © 2020-2023  润新知