美文网首页
offset &event 对象&scroll

offset &event 对象&scroll

作者: 佩佩216 | 来源:发表于2018-07-16 10:15 被阅读0次

offset家族

  • offsetWidth 和 offsetHeight:
    offsetWidth:用于获取对象自身的宽度,包括内容,边框和内边距,即:offsetWidth = width+border+padding;
    offsetHeight:用于获取对象自身的高度,包括内容,边框和边距,即:offsetHeight = height+border+padding;

  • offsetLeft 和offsetTop:
    offsetLeft:用于获取对象距离第一个有定位的父级盒子左边的距离,父级盒子从内向外寻找,如父级盒子没有定位,则以body为准!
    offsetTop:用于获取对象距离第一个有定位的父级盒子顶部的距离,父级盒子从内向外寻找,如父级盒子没有定位,则以body为准!
    取值:从父级元素的padding开始计算,不含border的值。即从自盒子边框到定位父级盒子边框的距离。

  • offsetParent:
    返回当前对象的父级(带有定位)盒子,同offset相同,父级元素从内向外寻找,如无定位的父级元素,取值为body,如父级元素含多个定位元素,取就近。

offset和style的区别:

  1. style只能获取行内属性,而offset可以获取所有;
    2.offset可以获取没有定位盒子的值,style.只能返回有定位盒子的属性值;
  2. offset返回的是数字,style.返回的是字符串,除了数字后还带了单位;
  3. offset属性值是只读的,无法通过offsetxxx= ''去修改,style属性值可读可改;
  4. 如果没有给当前元素指定过top样式,则style返回的是空字符串。

event常见属性:

pageX/pageY screenX/screenY clientX/clientY的区别。

  • pageX/pageY:是以当前文档为基准,不适用与IE6-8;
  • screenX/screenY:是以屏幕为基准进行测量,即:当前元素距离屏幕的尺寸;
  • clientX/clientY :是以当前可是区域为基准。
  • scrollTo(x,y):将内容滚动到指定的坐标,格式:
    scrollTo(xpos,ypos)
    • xpos:属性值必须,要在窗口文档显示区左上角显示的文档的X坐标;
    • ypos:属性值必须,要在窗口文档显示区左上角显示的文档的Y坐标;

scroll家族:

  • 网页正文全文宽:document.body.scrollWidth;
  • 网页正文全文高:document.body.scrollHeight;
  • 网页被卷去的高:document.body.scrollTop;
  • 网页被卷去的左:document.body.scrollLeft(基本不用);
    处理scroll的浏览器适配问题:
  1. ie9+ 和 最新浏览器:
    window.pageXOffset(相当于scrollLeft)
    window.pageYOffset; (相当于scrollTop)
  2. Firefox浏览器 和 其他浏览器:
    document.documentElement.scrollTop;
  3. Chrome浏览器 和 没有声明 DTD <DOCTYPE >:
    document.body.scrollTop;
  4. 兼容写法:兼容写法
    var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;

相关文章

网友评论

      本文标题:offset &event 对象&scroll

      本文链接:https://www.haomeiwen.com/subject/dfuokxtx.html