zoukankan      html  css  js  c++  java
  • 常用的一些获取尺寸的方法

    今天,我们来说一个比较小的点,但也是比较常用的知识点,就是获取尺寸的方法。

    首先,我们先来说一下获取可视区的宽度,但前提你要知道什么是可视区,就是我们现在双眼所看的这个界面,当然不包括滚动条拉下去之后的啦,

     

    接下来我们说一下方法:

    //获取可视区的宽度

    document.documentElement.clientWidth;

    //获取可视区的高度

    document.documentElement.clientHeight;

    那如果你还不理解的话,我们来个比较官方的说法:clientWidth和clientHeight这组属性可以获取元素可视区的大小,可以得到元素内容及内边距所占据的空间大小。返回了元素大小,但没有单位,默认单位是px,如果你强行设置了单位,比如100em之类,它还是会返回px的大小。(CSS获取的话,是照着你设置的样式获取)。对于元素的实际大小,clientWidth和clientHeight理解方式如下:
    a. 增加边框,无变化;
    b. 增加外边距,无变化;
    c. 增加滚动条,最终值等于原本大小减去滚动条的大小;
    d. 增加内边距,最终值等于原本大小加上内边距的大小;

    我们可以看一下在网页里的实际情况

     

    //获取滚动条的滚动的距离

    document.documentElement.scrollTop

    但是在IE中有兼容性问题,所以我们要怎么解决这个问题呢,我们可以这样做

    var t = document.documentElement.scrollTop||document.body.scrollTop

    我们可以这样用

    window.onscroll = function(){

             var t = document.documentElement.scrollTop||document.body.scrollTop

             console.log(t)

    }

    上面我们都有在说一些获取的尺寸都是可视区,那我们再说一下获取整个页面的尺寸要如何做:

    //获取整个页面的宽度

    document.body.clientWidth;

    //获取整个页面的高度

    document.body.clientHeight;

    最后,给大家普及一个我们经常在网页上看到的右边的回到顶部的做法,也刚好用到我们上面所讲的知识。

    首先,我们设置回到顶部那个小方块必须在浏览器的可视区的正中间

    //获取可视区的高度的一半减去元素的高度的一半  (当前元素就会在浏览器的正中央)

    var iH = document.documentElement.clientHeight/2-box.offsetHeight/2;

    box.style.top = iH+'px';

    window.onscroll = function(){

        //滚动的时候获取滚动条的滚动距离

        var t = document.documentElement.scrollTop || document.body.scrollTop;

        //小方块的top值就等于 iH+ 滚动条的滚动距离

        box.style.top = t+iH+'px';

    }

     

    box.onclick = function(){

        //让滚动条的滚动距离为0就可以回到顶部了

        document.documentElement.scrollTop = document.body.scrollTop = 0

    }

     

    当点击红色小方块的时候,可以快速回到顶部,而他也始终保留在可视区的中间。

     

    好了,细碎的知识点就讲到这里,欢迎批评改正。

  • 相关阅读:
    Sql优化思路
    「网络流随想随记」
    「ZJOI 的部分题解整理」
    「循环矩阵相关的一些东西」
    知识蒸馏
    3D Human Pose Estimation with 2D Marginal Heatmaps
    模型剪枝
    目标检测小网络
    selenium---解决clear方法失效
    selenium---快速跳转到指定元素
  • 原文地址:https://www.cnblogs.com/cuigege/p/9066351.html
Copyright © 2011-2022 走看看