JS坐标和位置宽高获取


??获取元素的坐标位置

clientX clientY : 事件触发时, 鼠标相当于浏览器窗口(坐标原点)的偏移值

pageX pageY : 事件触发时,鼠标相当于文档坐标原点的偏移值

offsetX offsetY : 事件触发时,鼠标相对于事件源对象的偏移值

screenX screenY : 事件触发时,鼠标相对于电脑屏幕的坐标值

clientX 和 pageX 区别:

在于页面是否出现滚动条 ; 没有滚动条, 两者时一致, 出现滚动条: clientX 始终先对于浏览器窗口, pageX 相对于 文档(页面整体的)

??获取元素的偏移值

offsetLeft offsetTop 获取元素相对于浏览器窗口的偏移值

方案一

css部分:


偏移值

方案二


??获取浏览器的宽高

window.innerWidth

window.innerHeight

??获取元素的宽高(1)

clientWidth clientHeight 包含padding 在内

let wd = wrap.clientWidth; // width + padding
let ht = wrap.clientHeight; // height + padding

??获取元素的宽高(2)

offsetWidth offsetHeight 包含padding + border在内

let wd = wrap.offsetWidth; // width + padding + border
let ht = wrap.offsetHeight; // height + padding + border

??获取元素边框的宽高

clientTop clientLeft

let bt = wrap.clientTop;  // 边框的高度
let bh = wrap.clientLeft;  // 边框的宽度
console.log(bt, bh);

??获取元素滚动的宽度和高度

(理解为 内容真实的宽度和高度)

scrollWidth scrollHeight

let swd = wrap.scrollWidth;
let sht = wrap.scrollHeight; 
console.log(swd, sht);

??获取元素内容被卷出去的宽度和高度

借助于滚动事件, 出现滚动条 , 在滚动事件中才可获取

scrollTop scrollLeft

// 滚动事件 onscroll
wrap.onscroll = function () {
    // console.log(1);
    let scrolltop = this.scrollTop;
    let scrollleft = this.scrollLeft;
    console.log(scrolltop, scrollleft);
}