码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • jquery中 offset()计算的偏移量 和 原生Dom计算的偏移量不一致;


    目录

    一、问题

    二、原因及解决方法

    三、总结


    一、问题

    1.需求:有一个表格,单元格宽度不相等,单元格上面覆盖着一个input输入框。想要通过相对位置计算 输入框到底在表格的第几列。

    思路:通过循环表格第一行单元格计算左边偏移量,直到累加的左偏移量大于或等于 输入框的左偏移量,此时的单元格所在的列即 输入框在表格的列。

    算了半天,发现怎么算都不对。打印发现:我用offset().left计算的第一行第一个单元格的左边偏移量竟然有580px,相对外面的div明显不正确呀,看着就还没有100px;用offsetLeft计算输入框的左偏移量。

    二、原因及解决方法

    1.原因:offset()计算的偏移量竟然是 相对于 浏览器文档的距离(body) !!!!!真是难以置信,因为原生DOM也有计算偏移量的属性 offsetLeft,取得是相对最近的有定位的父元素到当前元素的距离。

    我的外层div有定位,所以offsetLeft计算时是相对于外层div的;而单元格的左偏移量计算是相对于

    body的;这两个值根本就无法比较,根本就不可能计算出输入框在表格的第几列。

    2.解决方法:jquery中提供了 position().left 方法取相对偏移量,结果和offsetLeft计算结果一致。

    三、总结

    1.在通过偏移量计算位置时:尽量统一使用jquery方法  或  原生DOM计算方式。不要混合使用,因为有些方法看着是相似的,其实他们的含义是不一样的。如上面的offset().left和offsetLeft理所当然的认为他们一样,结果根本不一样。

    2.offset().left是相对于body的偏移量;

    3.offsetLeft===position().left  都是相对于有定位的父元素的偏移,当父元素都没有定位时,才是相对于body的偏移量。

    /*

    感谢wxy的帮助!

    希望对你有帮助!

    如有错误,欢迎指正!

    */

  • 相关阅读:
    20天零基础自学Python | Day7 Number(数字)
    TypeError: __init__() got an unexpected keyword argument ‘autocompletion‘
    python 打包exe 及 两天含泪找出 python 用 PyInstaller打包成exe出现 No such file or directory
    数据库与数据库管理系统 MySQL的安装 SQL语言学习:DDL、DML
    Ubuntu系统设置
    git提示:remote origin already exists
    一百九十、Hive——Hive刷新分区MSCK REPAIR TABLE
    linux安装、及JDK配置环境变量
    【学习笔记十九】EWM Yard Management概述及后台配置
    如何看待AIGC技术?
  • 原文地址:https://blog.csdn.net/qq_45327886/article/details/127987128
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号