窗口视图

2018-09-05  本文已影响0人  追逐_e6cf

1.innerWidth:获取窗口的内部的宽度(包含滚轮内容)
innerHeight:获取窗口的内部的高度(包含滚轮内容)

console.log(window.innerWidth);
console.log(window.innerHeight);

2.documentElement.clientWidth/clientHeight:跟文档相关的,滚动条不属于文档内容(滚动条属于浏览器,属于窗口内容)

console.log(document.documentElement.clientWidth);
console.log(document.documentElement.clientHeight);

3.ele.clientWidth/clientHeight:整个盒子样式的大小:padding+contentWidth/contentHeight

var oBox = document.getElementById("box");
console.log(oBox.clientWidth);

4.ele.offsetWidth/offsetHeight:整个盒子占位大小:padding+border+contentWIdth/contentHeight

console.log(oBox.offsetWidth);

5.scrollWidth/scrollHeight:获取元素的padding+width/height,如果子元素超过父元素的宽高度时,会加上超出的宽高部

console.log(oBox.scrollHeight);

6.offsetTop/offsetLeft:获取ele到定位父级的top或left的距离,如果父级没有定位:距离marginLeft/marginTop + ele.left/ele.top

//获取元素的距离文档顶部的距离
function getOffset(ele){
  var obj = {
    left:0,
    top:0
  }
  while(ele !== document.body){
    obj.left += ele.offsetLeft + parseFloat(getStyle(ele.offsetParent).borderLeftWidth);
    obj.top += ele.offsetTop + parseFloat(getStyle(ele.offsetParent).borderTopWidth);
    ele = ele.offsetParent;
  }
  return obj;
  console.log(parseFloat(getStyle(ele.offsetParent).borderTopWidth));
}
console.log(getOffset(wrap).left);
function getStyle(obj){
  return obj.currentStyle || getComputedStyle(obj);
}

7.clientX/clientY:获取鼠标到文档可视区的左边、上边的距离
pageX/pageY:获取鼠标到文档顶部的左边、上边的距离(包括滚动条内容)

//e是形参,指示鼠标事件
document.onclick = function(e){
  e = e || window.event;//低版本IE下的兼容处理
  console.log(e);
  console.log(e.clientX);
  console.log(e.clientY);
  console.log(e.pageX);
  console.log(e.pageY);
  //pageX/pageY处理兼容的问题:
  //document.documentElement.scrollTop + e.clientY(文档的可视区坐标+被滚轮遮盖的内容坐标)
  console.log(document.documentElement.scrollTop + e.clientY);
}

8.onresize:触发事件改变窗口的大小

window.onresize = function(){
  console.log(document.documentElement.clientHeight);
  console.log(document.documentElement.clientWidth);
}
上一篇下一篇

猜你喜欢

热点阅读