js-获取DOM尺寸、位置

获取DOM尺寸、位置

查看滚动条的滚动位置

  • window.pageXOffset / window.pageYOffset(IE8及其以下版本不支持)
  • document.body/documentElement.scrollLeft/scrollTop
    • 兼容性比较混乱,使用时通常取两个属性值相加,因为不可能存在两个同时有值。
  • 封装兼容性方法getScrollOffset():
function getScrollOffset(){
        if(window.pageXOffset){
            return{
                x:window.pageXOffset,
                y:window.pageYOffset
            }
        }else{
            return{
                x:document.documentElement.scrollLeft,
                y:document.documentElement.scrollTop
            }
        }
    }

查看可视化窗口的尺寸

  • window.innerWidth/innerHeight

    • IE8及其以下版本不兼容
  • document.documentElement.clientWidth/clientHeight
    • 标准模式下,任意浏览器兼容
  • document.body.clientWidth/clientHeight
    • 适合怪异(混杂)模式下浏览器
  • 封装兼容性方法,getViewportOffset:
function getViewportOffset(){
        if(window.innerHeight){
            return{
                width:window.innerWidth,
                height:window.innerHeight
            }
        }else{
            if(document.compatMode == 1){
                return{
                    width:document.documentElement.clientWidth,
                    height:document.documentElement.clientHeght
                }
            }else{
                return{
                    width:document.body.clientWidth,
                    height:document.body.clientHeght
                }
            }
        }
    }
PS:
  • <!DOCTYPE html>限定了浏览器的渲染模式为标准模式,如果在Html文件删去这一句代码,则采用怪异(混杂)模式。
  • 标准模式下,网页按照现行的浏览器版本渲染;
  • 怪异模式下,网页会选择浏览器版本向后兼容的方式渲染。

查看元素的几何尺寸

  • domEle.getBoundingClientRect();

    • 兼容性很好。
    • 返回的是一个对象,里面包括该元素的bottom,left,top right(bottom,left表示元素左下角坐标X,y值);width,height(在老版本IE浏览器中不兼容)。
    • 返回的结果并不是实时的。

查看元素的尺寸

  • domEle.offsetWidth, domELe.offHeight

查看元素的位置

  • domEle.offsetLeft,domEle.offTop

    • 对于无定位父级的元素,返回相对于文档的位置;对于有定位父级的元素,返回相对于最近的有定位父级元素的位置。
  • domEle.offsetPerent
    • 返回最近的有定位的父级元素,如果没有就返回body;body.offsetParent为null.

让滚动条滚动

  • window上有三个方法:scroll(),scrollTo(); scrollBy()
  • 三个方法的功能类似,都是在括号里面传入x,y的值。
  • 区别:前两个都是滚动到x,y坐标;scrollBy(),是在之前的基本数据上做累加。

原文地址:https://www.cnblogs.com/chenyingjie1207/p/10019354.html

时间: 2024-10-07 23:05:34

js-获取DOM尺寸、位置的相关文章

获取DOM元素位置和尺寸大小

JavaScript获取DOM元素位置和尺寸大小 在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽略的一部分,要想写出预想效果的JavaScript代码,我们需要了解一些基本知识. 基础概念 为了方便理解,我们需要了解几个基础概念,每个HTML元素都有下列属性 offsetWidth clientWidth scrollWidth offsetHeight clientHeight scroll

JS获取DOM的几种方法

JS获取DOM和几种方法 通过ID获取(getElementById) 通过name属性(getElementsByName) 通过标签名(getElementsByTagName) 通过类名(getElementsByClassName) 获取html的方法(document.documentElement) 获取body的方法(document.body) 通过选择器获取一个元素(querySelector) 通过选择器获取一组元素(querySelectorAll) 下面依次讲解:1.通过

JS获取DOM元素的八种方法

什么是HTML DOM 文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展置标语言的标准编程接口.简单理解就是HTML DOM 是关于如何获取.修改.添加或删除 HTML 元素的标准.我们用JavaScript对网页进行的所有操作都是通过DOM进行的. 这篇文章不做深入研究,只把各种用法和坑做一个总结. JS获取DOM元素的方法(8种) 通过ID获取(getElementById) 通过name属性(getElementsByName) 通过标签名(getE

原生JS获取DOM 节点到浏览器顶部的距离或者左侧的距离

关于js获取dom 节点到浏览器顶/左部的距离,Jquery里面有封装好的offset().top/offset().left,只到父级的顶/左部距离position().top/position().left: 原生写的话就是用获取节点,do while循环就可以了.代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta

JavaScript获取DOM元素位置和尺寸大小

在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽略的一部分,要想写出预想效果的JavaScript代码,我们需要了解一些基本知识. 基础概念 为了方便理解,我们需要了解几个基础概念,每个HTML元素都有下列属性 offsetWidth clientWidth scrollWidth offsetHeight clientHeight scrollHeight offsetLeft clientL

JavaScript获取DOM元素位置和尺寸

每一个HTML元素都有下列属性: offsetWidth clientWidth scrollWidth offsetHeight clientHeight scrollHeight offsetLeft clientLeft scrollLeft offsetTop clientTop scrollTop 首先,要理解HTML元素的实际内容可能会比分配给这个元素容纳内容的盒子要大,比如说一段很长的文字,把它放在了一个固定长宽的盒子里面,因此可能会出现滚动条. 1.clientHeight和cl

js获取dom对象style样式的值

js获取到的dom对象的style通常是没有值得,因为我们都写在外部文件中,从慕课网上见到讲师封装的一个方法,挺不错.特此记录下来. 1 function getStyle(obj,attr){ 2 if(obj.currentStyle){//兼容IE 3 return obj.currentStyle[attr]; 4 }else{ 5 return getComputedStyle(obj,false)[attr]; 6 } 7 }

js获取鼠标坐标位置兼容多个浏览器

这个看似简单的获取坐标功能,可是已经花费我一天时间了,白天一直搜索js获取坐标,找了很多很多,一一检验,结果出现不兼容.真的够烦躁了,但是事情还是要继续,要完成,回来又继续实践,搜索,反复操作,发现自己好多不会呀,特别是jquery自定义方法(函数),根本就不会,很欠缺基础,心里暗暗下决心,弄完这个好好学习一下js,不然老是卡在这方面.时间虽然已经过去很久了,但我还是没有放弃,想想换个关键词搜索一下,是不是可以找到我想要的.搜索“js获取坐标兼容ie8”,一下子出现后几条,于是挑选一个实践,改造

js获取鼠标的位置

<!doctype html><html><head><meta charset="utf-8"><title>获取鼠标的位置</title><script>function mouseMove(ev){Ev= ev || window.event;var mousePos = mouseCoords(ev);document.getElementById("xxx").value

js 获取DOM的style属性

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>计算元素样式</title>