热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

js-获取DOM尺寸、位置

获取DOM尺寸、位置查看滚动条的滚动位置window.pageXOffsetwindow.pageYOffset(IE8及其以下版本不支持)document.bodydoc

获取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:
  • 限定了浏览器的渲染模式为标准模式,如果在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(),是在之前的基本数据上做累加。

推荐阅读
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • jQuery如何判断一个元素是否被点击?
    本文介绍了使用jQuery判断一个元素是否被点击的方法,并通过示例进行了具体说明。注意要指定父级,否则会执行多次。 ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
author-avatar
南北风味街
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有