Javascript之常用尺寸、位置获取
标签: js
缘起
平时在开发中或多或少需要去获取元素尺寸,特此记录常用的尺寸获取方案。
常用相关尺寸
- 窗口可视尺寸 测试地址
/**
* 获取窗口可视尺寸
*/
function getWindowClientSize(){
var docElem = document.documentElement;
var docBd = document.body;
return {
w: docElem.clientWidth || docBd.clientWidth,
h: docElem.clientHeight || docBd.clientHeight
}
}
- 窗口真实尺寸 测试地址
/**
* 获取窗口真实尺寸,包括滚动条隐藏的内容
*/
function getWindowSize() {
var docElem = document.documentElement;
var docBd = document.body;
return {
w: docElem.scrollWidth || docBd.scrollWidth,
h: docElem.scrollHeight || docBd.scrollHeight
}
}
- 元素的可视尺寸 测试地址
/**
* 获取元素的可视尺寸
* @param {Dom} elem 要获取的元素
* 注:行内元素总为0,隐藏元素也为0
*/
function getElementClientSize(elem) {
return {
pw: elem.clientWidth, // width + padding(左右)
ph: elem.clientHeight, // height + padding(上下)
pdw: elem.offsetWidth, // width + padding(左右) + border(左右)
pdh: elem.offsetHeight // height + padding(上下) + border(上下)
}
}
- 元素的真实尺寸 测试地址
/**
* 获取元素的真实尺寸
* @param {Dom} elem 要获取的元素
* 注:此宽度包括滚动隐藏内容,可视内容,内边距,会减少滚动条所占的大小
*/
function getElementSize(elem) {
return {
w: elem.scrollWidth,
h: elem.scrollHeight
}
}
- 已滚动的尺寸 测试地址
/**
* 获取滚动条已滚动的尺寸
*/
function getScrollSize() {
var docElem = document.documentElement;
var docBd = document.body;
return {
t: docElem.scrollTop || docBd.scrollTop,
l: docElem.scrollLeft || docBd.scrollLeft
}
}
常用相关位置
- 获取元素基于可视区左上角的位置 测试地址
/**
* 获取元素基于可视区左上角的位置
* @param {Dom} elem
* 注:获取元素4条边相对于窗口左上角的偏移值,平时做按需加载和滚屏动画经常用到它
*/
function getElementClientPos(elem) {
var pos = elem.getBoundingClientRect();
return {
left: pos.left,
top: pos.top,
right: pos.right,
bottom: pos.bottom
}
}
- 获取无素到页面顶部的位置 测试地址
/**
* 获取元素相对窗口左上角的偏移
* @param {Dom} elem
* 注:默认会忽略元素offsetParent的边框
*/
function getElementOffsetPos(elem){
var top = 0,
left = 0;
while(elem) {
top += elem.offsetTop;
left += elem.offsetLeft;
elem = elem.offsetParent;
}
return {
top: top,
left: left
}
}
Javascript之常用尺寸、位置获取的更多相关文章
- javascript控制滚动条的位置,获取控件的位置
一.如下是定位鼠标在视窗中的位置,先定位视窗和页面直接的距离. function getMousePoint() { var point = {x:0,y:0}; // 如果浏览器支持 pageYOf ...
- javascript中常用坐标属性offset、scroll、client
原文:javascript中常用坐标属性offset.scroll.client 今天在学习js的时候觉得这个问题比较容易搞混,所以自己画了一个简单的图,并且用js控制台里面输出测试了下,便于理解. ...
- Android View各种尺寸位置相关的方法探究
Android View各种尺寸位置相关的方法探究 本来想做一个View间的碰撞检测之类的. 动手做了才发现不是想象的那么简单. 首先,写好了碰撞检测的工具类如下: package com.mengd ...
- JS-009-屏幕分辨率、浏览器显示区域、元素位置获取
此文简略讲述有关屏幕大小.元素位置及大小获取. 执行文中脚本时,请先打开 Chrome 浏览器,并切换至开发者工具的控制台,并打开网址:http://www.yixun.com/,文中元素事例为页面元 ...
- jquery】常用的jquery获取表单对象的属性与值
[jquery]常用的jquery获取表单对象的属性与值 1.JQuery的概念 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用一些简单的代码实现一些复杂的 ...
- Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)
当前位置: 首页 > 编程社区 > Swift > Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等) Swift - 常用文件目录路径获取(Home目录,文 ...
- javascript数组常用的遍历方法
本篇文章给大家带来的内容是关于javascript数组常用的遍历方法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 本文主要介绍数组常见遍历方法:forEach.m ...
- Javascript中常用事件集合和事件使用方法
Javascript中常用事件集合和事件使用方法 一.事件绑定 格式: 事件源 . on事件类型=事件处理函数 事件绑定三要素 1.事件源:和谁绑定 2.事件类型:什么事件 3.事件处理函数:触发了要 ...
- 如何理解JavaScript中常用的4种排序算法?
如何理解JavaScript中常用的4种排序算法? 冒泡排序 冒泡排序是我们在编程算法中,算是比较常用的排序算法之一,在学习阶段,也是最需要接触理解的算法,所以我们放在第一个来学习. 算法介绍: ...
- 一个分门别列介绍JavaScript各种常用工具的脑图
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:一个分门别列介绍JavaScript各种常用工具的脑图.
随机推荐
- HTML – Naming Conversion
有些是市场的规范, 有些是我的规范 Tag Name Lower Case 参考: W3Schools Attributes Name Lower Case 参考: W3Schools Always ...
- C++中对象的延迟构造
本文并不讨论"延迟初始化"或者是"懒加载的单例"那样的东西,本文要讨论的是分配某一类型所需的空间后不对类型进行构造(即对象的lifetime没有开始),更通俗点 ...
- ChatGPT中Java相关问答(包括Java基础知识和一些面试题)
分享一个自己学习Java时的记录ChatGPT中的对话:https://chatgpt.com/share/66e8f009-0fd0-8000-b458-8c5812d0b631 包括如下问题 Ho ...
- C#爬取动态网页上的信息:B站主页
目录 简介 获取 HTML 文档 解析 HTML 文档 测试 参考文章 简介 动态内容网站使用 JavaScript 脚本动态检索和渲染数据,爬取信息时需要模拟浏览器行为,否则获取到的源码基本是空的. ...
- LeetCode 1316. Distinct Echo Substrings (RK哈希)
题意: 给一个字符串 寻找字符串为(a+a)格式的子串有多少.a+a 格式字符串比如 abcabc, ee 等. 首先O(N^2)枚举子串,然后通过哈希在O(1)复杂度判断子串是否符合要求. RK哈希 ...
- SpringCloud入门(四)Ribbon负载均衡
一.Ribbon负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的. SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTempl ...
- /proc/zoneinfo
root@pita2_mr813_tina35:/# cat /proc/zoneinfo Node 0, zone DMA per-node stats nr_inactive_anon 4749 ...
- 3.flask 源码解析:路由
目录 一.flask 源码解析:路由 1.1 构建路由规则 1.2 werkzeug 路由逻辑 1.3 flask 路由实现 1.4 match 实现 Flask 源码分析完整教程目录:https:/ ...
- 「模拟赛」CSP-S 模拟 11(T2 超详细)
比赛链接 A.玩水 (water) 签到.发现如果要找两条路径的话,能找到的充要条件是存在一个点的上方和左方的字母相同.(即使两条走过的点截然不同的路径也符合,这时终点会成为这个点). 即存在一个位置 ...
- 新东方在有状态服务 In K8s 的实践
作者|周培,新东方架构部容器组专家 有状态服务建设一直以来都是 K8s 中非常具有挑战性的工作,新东方在有状态服务云化过程中,采用定制化 Operator 与自研本地存储服务结合的模式,增强了 K8s ...