• 【client】与【offset】


    上面主要区分了【offset】和【client】开头的各个属性的意义,下面这张图是转载的,又加入了【scroll】开头的,和元素本身的【style】

    clientWidth   是对象看到的宽度(不含border)
    scrollWidth   是对象实际内容的宽度(若无padding,那就是边框之间距离,如有padding,就是左padding和右padding之间距离)。
    offsetWidth  是指对象自身的宽度,整型,单位像素(含border,如滚动条的占用的宽,值会随着内容的输入而不断改变)。

    好吧,第一张图看不清,我把代码贴下面了。

     CSS代码 
    body    { margin:10px; padding:10px; font-size:10px; }
    div.v1   { margin:10px 30px; padding:20px; border:10px solid #000; border-left:20px solid red; }
    div.v2   { margin:10px 30px; padding:20px; border:10px solid #000; border-left:15px solid green; }
    p         { margin:20px 50px; border:10px solid red; padding:20px; border-left:15px solid #F3F;}

     JS代码 
    $(function(){
    var oP=document.getElementById("replace");

    var offsetWidth = oP.offsetWidth;       // 当前对象 【content+padding+border】
    var offsetHeight = oP.offsetHeight;     // 怎么只有padding+border?
    var clientWidth = oP.clientWidth;        // 当前对象 【content+padding】
    var clientHeight = oP.clientHeight;       // 只有padding啦?

    var offsetLeft = oP.offsetLeft;        // 所有上级包括body的【padding-left、border-left、margin-left值】+【当前元素的margin-left值】 。我暂时理解为:当前元素从边框以外抵达窗口左边界的距离
    var offsetTop = oP.offsetTop;        // 暂时理解为当前对象从边框以外抵达窗口上边界的距离
    // 以上这俩,FF有兼容问题,不会计算上body的border值
    var clientLeft = oP.clientLeft;         // 当前对象【border】宽度
    var clientTop = oP.clientTop;         // 当前对象【border】高度

    $("#replace").text("offsetLeft: " + offsetLeft);
    })

     HTML结构 
    <div class="v1">
      <div class="v2">
        <p id="replace"></p>
      </div>
    </div>

      追加点东西,在下面  

    易混淆点:

    clientX     设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
    clientY     设置或获取鼠标指针位置相对于当前窗口的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
    offsetX    设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。 
    offsetY    设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。 
    screenX   设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。 
    screenY   设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。 
    x            设置或获取鼠标指针位置相对于父文档的 x 像素坐标(亦即相对于当前窗口)。 
    y            设置或获取鼠标指针位置相对于父文档的 y 像素坐标(亦即相对于当前窗口)。

  • 相关阅读:
    ubnt+ros 接入无线
    生成new, old的 shell script
    lua学习记录
    反编译dtsi
    抓包软件PowerSniff开发计划
    android的ArrayMap类
    京东买的5本书
    c++ 变量必须初始化吗???
    cocos2dx 很好的源码分析博文
    cocos2dx 最基本,纯色、字体、图片
  • 原文地址:https://www.cnblogs.com/YYvam1288/p/5408261.html
Copyright © 2020-2023  润新知