美文网首页
浏览器BOM的知识点及方法封装

浏览器BOM的知识点及方法封装

作者: QJe | 来源:发表于2018-09-06 19:01 被阅读0次

查看滚动条滚动的距离

window.pageXOffset / window.pageYOffset

(IE8及IE8以下不兼容)

document.body.scrollLeft / document.body.scrollTop

documentElement.srcollLeft / documentElement.scrollTop

(兼容性比较混乱,用时取两个值相加,因为不可能同时存在两个值,一个存在时,另一个一定为0)

//封装出求滚动条的滚动距离的方法
/**
 * [getScrollOffset 求浏览器滚动条滚动的长度]   
 * @return {[obj]} [description]  x : 横轴  y  : 纵轴  ,返回值为对象,对象内部数据值为number类型
 */
function getScrollOffset (){
    if(window.pageXOffset){
        return {
            x : window.pageXOffset,
            y : window.pageYOffset
        }
    }else{//兼容IE8及IE8以下的浏览器版本
        return {
            x : document.body.scrollLeft + document.documentElement.scrollLeft,
            y : document.body.scrollTop + document.documentElement.scrollTop
        }
    }
}

查看视口的尺寸

window.innerWidth / window.innerHeight

(IE8及IE8以下不兼容)

document.documentElement.clientWidth / document.documentElement.clientHeight

(标准模式下,兼容所有的浏览器)

document.body.clientWidth / document.body.clientHeight

(适用于怪异模式下的浏览器)

//封装一个获取浏览器窗口尺寸的方法
/**
 * [getViewportOffset 求浏览器窗口可视区域的尺寸]  
 * @return {[obj]} [description]  x : 宽度  y  : 高度  ,返回值为对象,对象内部数据值为number类型
 */
function getViewportOffset (){
    if(window.innerWidth){
        return {
            w : window.innerWidth,
            h : window.innerHeight
        }
    }else{
        //兼容IE8及IE8以下的版本
        if(document.compatMode === 'BackCompat'){
            //兼容怪异模式/混杂模式
            return {
                w : document.body.clientWidth,
                h : document.body.clientHeight
            }
        }else{
            //兼容标准模式/非怪异模式
            return {
                w : document.documentElement.clientWidth,
                h : document.documentElement.clientHeight
            }
        }
    }
}


domEle.getBoundingClientRect()方法可以求任意元素的位置及大小信息

1.兼容性好

2.方法返回一个对象,对象里面有left,right,top,bottom等属性,left和top代表元素左上角的X坐标和Y坐标,right和bottom代表右下角元素的X坐标和Y坐标

3.height和width属性在老版本的IE并未实现

4.返回结果不是实时的,如果后面改变的话,在改变之前获取到的值不会改变(但是此方法不常用)


查看元素的尺寸

dom.offsetWidth / dom.offsetHeight
(查看元素的宽和高,包含border和padding但是不包含margin)


查看元素的位置

domEle.offsetLeft / domEle.offsetTop

对于无定位的父级元素,返回相对文档的坐标,对于有定位父级的元素,返回相对于最近的有定位的父级元素的坐标。

domEle.offsetParent

返回最近的有定位的父级,如果没有,返回body,求body.offsetParent返回null


让滚动条滚动

window上面有三个方法

scroll(),scrollTo() :两个方法一样,都是让滚动条滚动到哪。用法 window.scrollTo(x,y),参数x表示横轴滚动距离,y表示纵轴滚动距离。非累加。

scrollBy() 让滚动条滚动多少距离,是在之前数据的基础上累加的。 window.scrollBy(x,y),再滚动横轴加x,纵轴加y

相关文章

  • 浏览器BOM的知识点及方法封装

    查看滚动条滚动的距离 window.pageXOffset / window.pageYOffset (...

  • 前端知识点之BOM类

    BOM Browser Object Model 浏览器对象模型 知识点:--渲染机制类——什么是DOCTYPE及...

  • js的window常用方法&常用属性

    知识总结: 浏览器对象模型BOM:将浏览器常用方法封装进window对象,对外供js调用具体实现:window对象...

  • BOM

    1.BOM BOM(Browser Object Model) 浏览器对象模型。BOM是关于浏览器的方法,属性,事...

  • BOM

    BOM(浏览器对象模型):把浏览器的一些功能封装成对象的方式,让我们通过代码可以操作浏览器的功能 在BOM中win...

  • Day09 BOM和DOM (上)

    BOM概念 BOM : Browser Object Model 浏览器对象模型,描述与浏览器进行交互的方法和接 ...

  • 什么是bom?什么 是dom?

    Bom部分 => browser object model =>浏览器对象模型 //将浏览器中的各个组件封装成对象...

  • 为什么先加载css后加载js

    1,几个使用的BOM属性对象方法 什么是BOM,BOM是浏览器对象,有哪些常用的BOM属性呢? 1,locatio...

  • 08 | 读JavaScript 高程

    这一篇呢是第8章,主要涉及 BOM 的相关知识。 先来看BOM,即和浏览器相关地一些东西。 知识点:1.BOM 中...

  • BOM&Event

    BOM BOM:Browser Object Model,定义了一些JS操作浏览器的方法。 浏览器大部分属性是在w...

网友评论

      本文标题:浏览器BOM的知识点及方法封装

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