JavaScript中无法通过div.style.left获取值的解决方法
发布时间 - 2026-01-10 23:09:07 点击率:次一、问题总结:

样式必须直接写在元素内部才能通过div.style.left直接获取属性值(也就是必须是内联样式才行),定义在css中的样式不能通过这种方式获取。
让元素移动到200停止
setTimeout ( function () {
var div = document.getElementById("div4");
//var left = parseInt(div.style.left) + 5;
var left = div.offsetLeft + 5;
div.style.left = left + "px";
if (left < 200) {
setTimeout( arguments.callee, 50);
}
}, 50);
二、关于offsetLeft和left的区别(关于offsetLeft:https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/offsetLeft)
1.定义了position:relative或absolute属性的元素才有left属性,元素都有offsetLeft属性。
2.元素内联样式中设置了left,才能通过div.style.left获取;offsetLeft直接通过div.offsetLeft获取。
3.left可读可写,获取到的是字符串;offsetLeft只读,获取到的是数字。
相同点:定位方式一样,如果父元素设置了定位元素(position设置为relative或absolute),则相对于定位元素定位,否则就是相对于根元素定位。
三、案例:
HTMLElement.offsetParent 是一个只读属性,返回一个指向最近的(closest,指包含层级上的最近)包含该元素的定位元素。如果没有定位的元素,则 offsetParent 为最近 的 table 元素对象或根元素(标准模式下为 html;quirks 模式下为 body)。当元素的 style.display 设置为 "none" 时,offsetParent 返回 null。offsetParent 很有用,因为 offsetTop 和 offsetLeft 都是相对于其内边距边界的。
下面的span的父元素没有设置定位元素,所以该元素的offsetParent为根元素,此时的offsetTop相对于根元素定位。
<div style="width: 300px; border-color:blue;
border-style:solid; border-width:1;">
<span>Short span. </span>
<span id="long">Long span that wraps withing this div.</span>
</div>
<div id="box" style="position: absolute; border-color: red;
border-width: 1; border-style: solid; z-index: 10">
</div>
<script>
var box = document.getElementById("box");
var long = document.getElementById("long");
//
// long.offsetLeft这个值就是span的offsetLeft.
// span是个行内元素,它没有没absolute定位,但还是默认offserParent就是父元素,而不是根
//
box.style.left = long.offsetLeft + document.body.scrollLeft + "px";
box.style.top = long.offsetTop + document.body.scrollTop + "px";
box.style.width = long.offsetWidth + "px";
box.style.height = long.offsetHeight + "px";
</script>
如果给long的父元素添加一个定位属性,结果如下:
四、总结:
javascript中通过offsetLeft(offsetTop)方法获取元素偏移值很方便,得到的是数值;改变元素的偏移值使用style.left(top、right、bottom),通过style.left获取的是一个字符串的值,如果要通过style.left来改变元素位置,先要通过parseInt将获取到的当前left值转化为数值。
以上所述是小编给大家介绍的JavaScript中无法通过div.style.left获取值的解决方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言。
# div.style.left
# java 线程同步详细介绍及实例代码
# java中@ModelAttribute注解的作用
# 【Java】BigDecimal实现加减乘除运算代码
# JavaScript实现的鼠标响应颜色渐变效果完整实例
# Java 图片与byte数组互相转换实例
# Java使用SFTP上传文件到服务器的简单使用
# 详解租约机制以及在hbase中的应用
# 的是
# 相对于
# 设置为
# 都是
# 是一个
# 是个
# 都有
# 模式下
# 给大家
# 才有
# 如果没有
# 才行
# 转化为
# 写在
# 解决方法
# 很方便
# 所述
# 小编
# 给我留言
# 很有用
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
javascript中对象的定义、使用以及对象和原型链操作小结
太平洋网站制作公司,网络用语太平洋是什么意思?
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
清除minerd进程的简单方法
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
微信小程序 闭包写法详细介绍
如何挑选高效建站主机与优质域名?
如何利用DOS批处理实现定时关机操作详解
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
javascript中闭包概念与用法深入理解
详解vue.js组件化开发实践
如何快速搭建高效可靠的建站解决方案?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Linux系统命令中screen命令详解
JavaScript如何实现路由_前端路由原理是什么
如何快速上传建站程序避免常见错误?
香港服务器租用每月最低只需15元?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
Laravel如何使用Vite进行前端资源打包?(配置示例)
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
香港服务器网站推广:SEO优化与外贸独立站搭建策略
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
装修招标网站设计制作流程,装修招标流程?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
用v-html解决Vue.js渲染中html标签不被解析的问题
jquery插件bootstrapValidator表单验证详解
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
如何快速查询域名建站关键信息?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
手机网站制作与建设方案,手机网站如何建设?
如何快速查询网站的真实建站时间?
HTML 中动态设置元素 name 属性的正确语法详解
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
,南京靠谱的征婚网站?
python中快速进行多个字符替换的方法小结
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel如何优化应用性能?(缓存和优化命令)
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel Session怎么存储_Laravel Session驱动配置详解
js实现点击每个li节点,都弹出其文本值及修改
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何挑选最适合建站的高性能VPS主机?
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
如何在自有机房高效搭建专业网站?
如何用腾讯建站主机快速创建免费网站?

