1、css指定元素的位置采用的是文档坐标;

2、js查询元素位置的方法返回的是元素在视口中的位置,即视口坐标;

如何获得元素的位置和尺寸

获得元素的位置和尺寸可以通过getBoundingClientRect(),该方法返回的是视口坐标(值包含边框和内边距,不含外边距);

Element.getBoundingClientRect()不支持老式浏览器,可以用offsetWidth,offsetHeight,offsetLeft,offsetTop,clientWidth,clientHeight,clientLeft,clientTop,scrollWidth,scrollHeight,scrollLeft,scrollTop(这些都是Element对象,scrollTo是window对象)

offsetWidth,offsetHeight返回值包含内容和内边距和边框,不包含外边距

clientWidth,clientHeight返回值包含内容和内边距,不包含边框和外边距;对于内联元素这两个值总是0

scrollWidth,scrollHeight返回值包含内容和内边距以及溢出的部分,不包含边框和外边距,当无溢出时和clientWidth,clientHeight相等

offsetLeft,offsetTop对于大部分元素都是文档坐标,但对于已定位的元素的后代元素和一起其他元素(表格)返回的是相对于祖先元素的坐标

clientLeft,clientTop基本不用

scrollLeft,scrollTop指定滚动条滚动到指定的位置

如何获取滚动条位置:

可以通过(pageXOffset,pageYOffset,ScrollX,ScrollY:window对象),(scrollLeft,scrollTop:Element对象),来获得滚动条的位置

window.pageXOffset,window.pageYOffset

window.ScrollX,window.ScrollY

正常模式下:

document.documentElement.scrollLeft,document.documentElement.scrollTop

怪异模式下:

document.body.scrollLeft,document.body.scrollTop(360极速模式就是怪异模式)

如何让滚动条滚动到指定位置:

window.scrollTo();参数为x和y方向上的位置,指定数值多少就跳转到多少

window.scrollBy();参数为x和y方向上的相对值,在原有基础上增加

javascript位置相关知识点整理的更多相关文章

  1. EasyUI相关知识点整理

    EasyUI相关知识整理 EasyUI是一种基于jQuery.Angular..Vue和React的用户界面插件集合.easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能.也就 ...

  2. javascript基础入门知识点整理

    学习目标: - 掌握编程的基本思维 - 掌握编程的基本语法 typora-copy-images-to: media JavaScript基础 HTML和CSS 京东 课前娱乐 众人皆笑我疯癫,我笑尔 ...

  3. JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  4. JavaScript 易错知识点整理

    本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES ...

  5. JavaScript易错知识点整理[转]

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  6. Spring和Springboot相关知识点整理

    简介 本文主要整理一些Spring & SpringBoot应用时和相关原理的知识点,对于源码不做没有深入的讲解. 1. 思维导图 右键新窗口打开可以放大. 说明 使用@Configurati ...

  7. 网站性能,javascript性能相关知识点

    一.高性能网站 <高性能网站建设指南>一书中提出用户只有10%-20%最终用户响应时间是花在从web服务器获取html文档并传送到浏览器中,80%的时间都花在了等待页面组件中,由此提出了构 ...

  8. Java容器相关知识点整理

    结合一些文章阅读源码后整理的Java容器常见知识点.对于一些代码细节,本文不展开来讲,有兴趣可以自行阅读参考文献. 1. 思维导图 各个容器的知识点比较分散,没有在思维导图上体现,因此看上去右半部分很 ...

  9. H5相关知识点整理

    01-HTML5基础 了解HTML5 ☞HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体!!! 例如: video 标签和 audio 及 canvas ...

随机推荐

  1. my_strstr()

    const char* my_strstr(const char* S1,const char* S2){ int i=0,flag=0; while('\0'!=*(S1+i)){ if(*(S1+ ...

  2. Linux的文件时间

    在windows下,一个文件有:创建时间.修改时间.访问时间.而在Linux下,一个文件也有三种时间,分别是:访问时间.修改时间.状态改动时间. 1.访问时间,读一次这个文件的内容,这个时间就会更新. ...

  3. ubuntu14.04下的NVIDIA Tesla K80显卡驱动的安装教程

    搞深度学习如何能够不与浑身是“核”的显卡打交道呢? 人工智能的兴起除了数据量的大量提升,算法的不断改进,计算能力的逐步提高,还离不开软件基础设施的逐步完善.当下的主流的深度学习工具软件无论是Caffe ...

  4. Linux下Redis开机自启(Centos)

    废话少说,直接来步骤: 1.设置redis.conf中daemonize为yes,确保守护进程开启. 2.编写开机自启动脚本 vi /etc/init.d/redis 脚本内容如下: # chkcon ...

  5. node.js学习资料

    Node.js 入门 <汇智网 Node.js 课程> <快速搭建 Node.js 开发环境以及加速 npm> http://fengmk2.com/blog/2014/03/ ...

  6. java设计模式之抽象工厂模式

    上一篇文章(http://www.cnblogs.com/liaoweipeng/p/5768197.html)讲了简单工厂模式,但是简单工厂模式存在一定的问题,如果想要拓展程序,必须对工厂类进行修改 ...

  7. 【2016-10-13】【坚持学习】【Day4】【WPF】【ObservableCollection<T>】

    今天在项目中使用到这个 ObservableCollection<T> 类,作为数据源集合绑定到控件. 当数据源发生变化,会通知界面显示. 如果用List<T> ,当数据源发生 ...

  8. 第14章 位图和位块传输_14.4 GDI位图对象(3)

    14.4.10 非矩形的位图图像 (1)“掩码”位图——单色位图,要显示的像素对应的掩码置1,不显示置0(2)光栅操作(点这里,见此文分析) (3)MaskBlt函数 ①MaskBlt(hdcDest ...

  9. 文件上传&文件下载

    一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...

  10. cookie与session的爱恨情仇

    这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...