浅谈offsetleft与left系列的区别

浅析offsetLeft,Left,clientLeft之间的区别 假设 obj 为某个 HTML 控件 obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素。 obj.offsetLeft 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置,整型,单位像素。 obj.offsetWidth 指 obj 控件自身的绝对宽度,不包括因 overflow 而未显示的部分,也就是其实际占据的宽度,整型,单位像素。 obj.offsetHeight 指 obj 控件自身的绝对高度,不包括因 overflow 而未显示的部分,也就是其实际占据的高度,整型,单位像 立即下载

在复习javascript运动框架的过程中,又遇到了offset属性,之前一直比较模糊的一个知识点,今天各方查阅资料总算有了一个比较清楚地认识,特来道一道其中真谛!

首先来一段代码测试测试!

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=" utf-8"> 
<meta name="author" content="http://www.softwhy.com/" /> 
<title>未定义</title>
<style type="text/css"> 
div{ 
  width:100px; 
  height:100px; 
  border:5px solid red; 
  background-color:green; 
  padding:3px; 
} 
</style> 
<script type="text/javascript"> 
window.onload=function(){ 
 
<span style="color:#6600cc;"><strong>  console.log(document.getElementById("mytest").offsetWidth); 
  console.log(document.getElementById("mytest").style.width);</strong> </span>
} 
</script> 
</head> 
<body> 
<div id="mytest"></div> 
</body> 
</html>

以上代码中,offsetWidth属性可以返回div的宽度,但是style.width并不能够返回此div的宽度。(因为在js中不能直接把获取写在样式表中的样式)

由运行结果也可以看出offsetWidth返回的宽度值包括:border+width+padding




但是如果把样式加载行内,就可以读取到了

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
window.onload=function()
{
var oDiv=document.getElementById('div1');
var a=oDiv.style.width;
alert(typeof a);
alert(a);
}
</script>
</head>
<body>
<div id="div1" style="width:200px"></div>
</body>
</html>
显示结果:

相信大家也看出来了,width这样读取出来的不是一个数值,而是一个字符串,并且带有单位,但是offsetwidth返回的是一个数值。


这应该是两者在本质上的一个区别,还有在网上之前又看到过一种说法:

object.offsetLeft代表是当前object和父元素已经定义好的左边距。

object.style.left代表是object和父元素需要定义的左边距


不知道可不可以这样理解:offsetLeft是已经有的值,而left是需要计算的值,因此在运动框架的联系中经常看到的是将offsetLeft的值赋给left~~~


接下来一张图说明两者表象上的区别:



点击打开链接   offsetwidth和style.width的区别是什么

点击打开链接  浅析offsetLeft,Left,clientLeft之间的区别

为YOLOv11引入自适应特征融合模块(ASFF) 本文探讨了在YOLOv11中引入ASFF(自适应空间特征融合)模块以解决多尺度目标检测性能不均衡的问题。作者分析了传统FPN固定融合策略的缺陷,详细介绍了ASFF模块的实现原理,包括动态权重生成网络设计和特征融合机制。通过将ASFF集成到YOLOv11颈部网络,实现了特征在双向流动时的自适应融合,在复杂场景下mAP提升1.2%而推理时间仅增加3-5ms。文章还分享了训练调参技巧和部署注意事项,指出ASFF特别适合交通监控等目标尺度变化大的场景,但强调需根据实际需求平衡模型复杂度与性能。最后提供了工程实践建议 阅读详情

相关推荐

U3d WebGL使用ToLua

首先我们在编辑器模式下加入Tolua插件,然后配置修改到在编辑器模式下能够正常的运行。 同个U3d 插件Build出WebGL的工程,运行的时候你会发现(有些需要把这个WebGL工程放在一个HttpServer下面,直接本地访问index.html会被拒绝,让你使用http的格式)。 当要加载完的时候会出现 To use dlopen, you need to use Emscripten'...

qq_35267906的博客 2946

笔记--关于offsetLeft和left的区别

关于offsetLeft和left的区别(关于offsetLeft:https://developer.mozilla.org/zhCN/docs/Web/API/HTMLElement/offsetLeft)1.定义了position:relative或absolute属性的元素才有left属性,元素都有offsetLeft属性。 2.元素内联样式中设置了left,才能通过div.styl

qq_37160320的博客 2024

从Protocol到硬件控制:揭秘高通UEFI中ABL与XBL的协作机制

本文深入解析了高通UEFI架构中ABL与XBL的协作机制,重点探讨了Protocol通信在硬件控制中的关键作用。通过对比传统GPIO控制方式,揭示了Protocol架构在安全性、可维护性和灵活性方面的优势,并提供了关机充电场景的实战案例分析及调试技巧。

weixin_29185199的博客 430

关于left与offsetLeft的区别

style.left&&offsetLeft区别 offsetLeft获取的是相对于父对象的左边距,获取的结果是一个数值,可以用于计算,是个只读属性 另外,如果要修改元素offsetLeft属性值只能通过style.left修改。 left获取或设置相对于具体有定位属性(position定义不为static)的父对象的左边距,其返回的结果是一个字符串 ,可以对其进行获取或设置,另外,sty

soos的博客 2232

SAP S/4HANA 可扩展性 – 面向初学者的简化指南

可扩展性(Extensibility)是 SAP ECC 和 SAP S/4HANA 的一项关键功能。它使客户能够通过定制其业务流程来创造竞争优势,并使合作伙伴能够通过量身定制的解决方案来丰富核心 ECC 或 S/4HANA。在过去的几十年中,SAP 的 on-premise 版本客户和合作伙伴主要使用经典的 ABAP 扩展性来扩展他们的 ERP 解决方案。经典扩展性允许 ABAP 开发人员使用甚至修改所有 SAP 对象。尽管经典扩展性非常强大和灵活,但在当今的云世界中,它已不再是一个好的选择。

SAP学习成长之路的博客 1809

【搭建实战】全国天气预报看板搭建

不仅如此,码匠还一站式提供了企业内部系统常用的租户管理、细粒度的权限控制、审计日志等功能,让您快速搭建后台应用的同时,也为您的企业信息安全保驾护航。是一款国内研发的开发者友好的低代码平台,您无需了解React/Vue等框架的开发、部署等各种细节,就可以快速打通前后端,连接RESTAPI、MySQL、MongoDB等多种数据源,然后通过一套开箱即用的组件,轻松搭建功能完善的数据看板、数据洞察、Admin管理后台等多种应用。天气预报对我们的各项活动有很大的帮助,可以让我们合理安排自己的出行等活动。...

weixin_39545889的博客 427

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解

  HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解scrollHeight: 获取对象的滚动高度。 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离scrollWidth:获取对象的滚动宽度o

xuantian868的专栏 9万+

Python自动化测试全套教程-第一天(python、pycharm开发环境的安装与配置(图文超级详细);附安装包)

本文介绍了Python开发环境的完整安装配置流程。主要内容包括:1) Python解释器的下载安装与版本检测方法;2) PyCharm IDE的下载安装步骤,包括专业版和社区版的选择;3) PyCharm的基础配置和项目创建方法;4) 开发环境的基本构造说明。文章提供了两种获取安装包的方式(官网下载和文章附件),并详细说明了解释器卸载、安装过程中的注意事项,以及如何验证环境配置成功。特别强调了PyCharm安装时的路径选择和虚拟环境的创建方法,为Python初学者提供了完整的开发环境搭建指南。

kiwi_king的博客 2035

JavaScript---left与offsetLeft

left 属性:获取或设置具有定位属性(position: absolute)的子元素 相对于 具有定位属性(position:relative)的父对象的左边距【子绝父相原则】,如果具有定位属性(position: absolute)找不到具有定位属性(position:relative)的父对象,则将相对于body定位。 【补充:绝对定位与相对定位说明】 绝对定位(position: a...

maidu_xbd的博客 1129

【WLAN】【基础知识】WIFI那些事儿之信道和频谱(涵盖2.4G、5G、6G,全网最全)

- 从事WIFI相关开发或测试工作,经常要和信道、频宽、频率等打交道,本文仅将平时涉及的2.4G、5G、6G的信道、频宽、频率等做一总结。 - 一图胜万言,本文汇总了工作中经常用到的频谱图,保证全网最全!!! - 本博客地址,https://blog.youkuaiyun.com/qxhgd,欢迎各位关注,转发请注明出处。

一介草民,只为生活。 1万+

Css 学习——left与offsetLeft的区别

1. 首先一个标签元素的left属性是一个string类型,而offsetLeft是一个numberle类型。 求证: <script>   window.onload = function(){    var oDiv = document.getElementById('div1');     alert(typeof oDiv.style.left)...

aed97713的博客 306

RDKit | 基于Murcko骨架聚类化合物库

化合物多样性评估 一种方法是使用合适的指纹技术将化合物矢量化并评估他们之间的距离。这种方法经常被使用,但是对于人类很难直观地理解化合物之间的距离。 基于Murcko骨架,分子大致聚集在化合物骨架中,并且每个簇中的顶部化合物都作为候选化合物。此方法非常符合人类的直觉,因此可以预期人将通过查看候选化合物列表来自动缩小化合物的范围。 Murcko骨架 Mur...

DrugOne 3766

left、offsetLeft、width、offsetWidth区别

目测: 1、offsetLeft包括的自身的margin值。offsetLeft值,比style.left多出一个margin值。 2、 style.left和style.width值都需要先定义,而且必须要内联在html里,如果定义在css里,则style.left取到的值为空。而offsetLeft则可以取到,无需事先定义div的位置。 3、offsetWidth比style.w

ForMyQianDuan的博客 625

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

offsetleft和left和style.left的区别

left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距。 offsetLeft 获取的是相对于父对象的左边距。 如果父div的position定义为relative,子div的position定义为absolute(其中relative是相对于正常应该在的位置,absolute则是相对一第一个父块级元素),那么子div的style.left的值

wszylh的博客 797

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

js-DOM offsetLeft 属性与 offsetTop 属性,制作网页动画等必学知识!

目录 前言 一、offsetLeft与offsetTop属性 1、offsetLeft的定义和用法 2、offsetTop的定义和用法 结束语 前言 在制作动画的时候,我们常常需要用到offsetLeft属性来得到盒子的左偏移量,那它具体的原理是什么呢? 今天我们就来学习学习! 一、offsetLeft与offsetTop属性 1、offsetLeft的定义和用法 offsetLeft 是一个只读属性,返回当前元素相对于 offsetParent 节点左边界的偏移像素值。

weixin_57269725的博客 4246

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

踩坑记录:left&offsetLeft的区别

这篇文章说的很详细。 https://www.cnblogs.com/agansj/p/7225256.html 为元素添加top:50%; 百分比数值的时候style.left返回的也是空字符串。 .dialog { width: 200px; height: 200px; background-color: lightsalmon; position: absolute; left: 50%; /* 设置50%*/ top: 50

ZHgogogoha的博客 894

一文读懂offsetHeight/offsetLeft/offsetTop/offsetWidth/offsetParent

1.offsetHeight:获取元素的高度(在垂直方向上占用的空间大小),offsetWidth = 可视区的width+左右padding+左右边框 = 450+(10*2)+......

weixin_61597234的博客 2958

offsetLeft,Left,clientLeft详解

背景 最近写了一个滑动条,发现自己的对offsetLeft,Left,clientLeft这几个的概念还不是很清楚,于是决定细细研究下。 分类 client部分 clientHeight:内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度(不含边框,也不包含滚动条等边线,会随窗口的显示大小改变) clientLeft,clientTop: 这两个返回的是元素周围...

lulula的博客 2473

style.left,offsetLeft相对于容器的位置控制

如果父div的position定义为relative,子div的position定义为absolute,那么子div的style.left的值是相对于父div的值, 这同offsetLeft是相同的,区别在于: 1. style.left 返回的是字符串,如28px,offsetLeft返回的是数值28,如果需要对取得的值进行计算, 还用offsetLeft比较方便。 2. style.l...

cheng - cheer up。。。 。。。 684

offsetLeft和style.left的区别

offsetLeft和style.left的区别

u012309349的博客 3397

offsetLeft 与 left的区别

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> * { margin: 0; pa...

weixin_30443813的博客 228

正确使用pageX、pageY、offsetLeft、offsetTop

获取鼠标位置的时候,遇到一点疑问,然后验证了一下自己的疑惑;pageX、pageY跟clientX和clientY类似,是相对于浏览器文档的坐标;offsetLeft、offsetTop获取的是固定定位,也就是说,监听某个选择器内的鼠标位置,这个方法返回的是这个固定范围的左上角离页面左上角的距离坐标;下面利用一个简单的div来演示一下div{ width: 100px; ...

zheng_pika的博客 9809

offsetLeft和clientLeft的区别

原文章:https://blog.youkuaiyun.com/haozhoupan/article/details/51261940 offsetLeft从字面意思上理解,就是以父元素作为参照点,当前元素相对于父元素左边的偏移量 clientLeft的值就等于border-left的值 ...

weixin_41796631的博客 2282

鼠标事件

一. 理解 e.clientX, e.clientY e.pageX e.pageY e.offsetX e.offsetY 1. event.clientX、event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。IE事件和标准事件都定义了这2个属性 2.event.screenX、event.screenY 鼠标相对于用户显示器屏幕左上角的X,Y坐标。标准事件和IE事件都定义了这2个属性 3.event.pageX、event.pageY 类似于

EmotionComputer 788
上一篇: js如何获取非行间样式
下一篇: 由浅及深js运动框架
Crazier_qi
博客等级 码龄11年 13粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值