zoukankan      html  css  js  c++  java
  • 如何获取可视区域宽高,获取元素到在文档中的位置

    元素

    • 宽和高

    // 元素.style.width         只能获取行内
    // getStyle(元素, 'width')     自己封装的
    // 元素.clientWidth
    // 元素.offsetWidth
    //可以获取行内和非行内的宽和高
    console.log(box.clientWidth); // width + padding
    console.log(box.offsetWidth); // width + padding + border
    // 高也一样

    可视区宽高

    // 可视区的宽高(html)
    alert(document.documentElement.clientWidth);
    alert(document.documentElement.clientHeight);

    body和html

    console.log(document.body); // body标签
    console.log(document.documentElement); // html标签

    上边框宽和左边框宽

    // 元素的上边框宽和左边框宽
    console.log(box.clientTop); // 1
    console.log(box.clientLeft); // 1

    元素的位置

      

    • 元素.offsetLeft   元素.offsetTop

           元素到离它最近的有定位属性的父级的距离,如果没有定位的父级,则到body的距离

    <div id="box1">
        <div id="box2">
            <div id="box3"></div>
        </div>
    </div>
    var box3 = document.getElementById('box3');
    console.log(box3.offsetLeft, box3.offsetTop);
    
    // ----------------------------------
    // 封装一个方法,返回任何一个元素到文档的距离
    console.log(getPos(box3)); // { left: 108, top: 88 }
    
    function getPos(ele) {
        var l = 0;
        var t = 0;
    
        while (ele) {
            l += ele.offsetLeft;
            t += ele.offsetTop;
            ele = ele.offsetParent;
        }
    
        return {
            left: l,
            top: t
        }
    }
  • 相关阅读:
    Use Visual studio 2010 build Python2.7.10
    ext4 disable journal
    ElasticSearch优化配置
    重载Python FTP_TLS 实现Implicit FTP Over TLS方式下载文件
    linux下对进程按照内存使用情况进行排序
    python 树遍历
    E: Unable to correct problems, you have held broken packages 解决方法
    C++ Lambda 表达式使用详解
    C++ 14 新特性总结
    Log4j配置
  • 原文地址:https://www.cnblogs.com/ximenchuifa/p/13458053.html
Copyright © 2011-2022 走看看