element.clientWidth;
/*
clientWidth = width+左右padding;
内联元素以及没有 CSS 样式的元素的 clientWidth 属性值为 0。Element.clientWidth 属性表示元素的内部宽度,以像素计。该属性包括内边距 padding,但不包括边框 border、外边距 margin 和垂直滚动条(如果有的话)。
*/
element.offsetWidth;
/*
offsetWidth = width + 左右padding + 左右boder;
offsetWidth是测量包含元素的边框(border)、水平线上的内边距(padding)、竖直方向滚动条(scrollbar)(如果存在的话)、以及CSS设置的宽度(width)的值。
*/
// Object.hasOwnProperty()
/*
方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性。
*/
const { top, left, bottom, right } = el.getBoundingClientRect();
/*
top: 为dom顶部距离视口顶部的距离
bottom: 为dom底部距离视口顶部的距离
left: 为dom左边距离视口左边的距离
right: 为dom右边距离视口左边的距离
可以是负数。
*/
const { innerHeight, innerWidth } = window;
// innerHeight, innerWidth 视口宽高。