如何使 jQuery 返回的 width() 不四舍五入?

在前端开发中,经常需要使用 jQuery 来获取 DOM 元素的宽度和高度。其中,width() 方法是用于获取元素宽度的常用方法。然而,在某些情况下,jQuery 返回的 width() 值会被四舍五入,导致结果与预期不符。那么,如何让 jQuery 返回的 width() 值不被四舍五入呢?本文将为大家介绍这个问题的解决方案。

问题分析

首先,我们需要了解一下 jQuery 中 width() 方法的内部实现原理。在 jQuery 的源码中,width() 方法的实现代码如下所示:

-------- ---------------------- ----- ------ -
    -- --- ----- -- ------ -- --- -------- ---------- --- --- ------- ----------
    --- ---------------- - ----- -- ------ ---------- ----- ------ ---------
        --- - ---- --- ------- - ---------------- - ------------------
        ------ - ----------------
        ----------- - ----------------- --
            ---------------- ------------ ------ ------- --- -------------

    -- ---- -------- -------- ------ --------- --- ------------ -- ----- --- --------------
    -- --- - ---------------------------------------------------
    -- ------ - ---------------------------------------------------
    -- ---- -- - -- --- -- ----- -
        -- ---- ---- -- -------- ---- ---------- --- -- ---------
        --- - ------------ ----- --------
        -- ---- - - -- --- -- ----- -
            --- - -----------------
        -

        -- -------- ---- -- --- ------- ---- ---- --- -------
        -- --------------------- -
            ------ ----
        -

        -- ------- -- ------ -- ----- ---------- -- ------
        ---------------- - ----------- --
            ---------------------------- -- --- --- ------------------

        --- - --------------- -- --
    -

    -- --- --- ------ ---------- ----- -- ------------ ---------- ------
    ------ ---- -
        ---------------------
            -----
            -----
            ----- -- ------------ - -------- - -----------
            -----------------
            ------
        -
    - - -----
-

从上述代码中可以看出,width() 方法首先通过 elem.offsetWidth 获取元素的宽度值,然后根据不同情况进行计算并返回结果。其中,与四舍五入相关的代码是:

--- - ---- --- ------- - ---------------- - ------------------

---

--- - --------------- -- --

由于在 JavaScript 中使用 parseFloat() 方法将字符串转换为浮点数时,会自动进行四舍五入处理,因此导致 jQuery 返回的 width() 值也被四舍五入了。

解决方案

要解决这个问题,我们需要修改 jQuery 源码中与四舍五入相关的代码。具体来说,我们需要将 parseFloat() 方法替换为 parseInt() 方法,并在计算完成后将结果转换为浮点数。

具体的实现代码如下所示:

------------ -
    -------------- - ---------- -
        --- ----- - --------
            ----- - --------------
            ----------- - ------------------------------------
            ------------ - -------------------------------------
            ---------- - -----------------------------------------
            ----------- - ------------------------------------------

        ------ ----- - ----------- - ------------ - ---------- - ------------
    --
-----------

上述代码中,我们定义了一个名为 realWidth() 的新方法,它可以计算出元素的真实宽度值。该方法的实现方式是获取元素的 width 值,并加上元素的 padding-leftpadding-rightborder-left-widthborder-right-width 值。由于在计算过程中使用的是 parseInt() 方法,因此不会进行四舍五入处理。

示例代码

下面是

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/11674


猜你喜欢

  • ReactJS中的动态组件名称和JSX

    在React应用程序中,动态组件名称和JSX是非常有用的技术。通过使用这些技术,您可以创建可重用的组件,并将它们传递给其他组件以便在不同场景下进行呈现。本文将深入探讨React中动态组件名称和JSX的...

    7 年前
  • 无法访问带有“-”破折号的JSON属性?

    在处理 JSON 数据时,我们有时会遇到一个问题:无法访问带有“-”破折号的 JSON 属性。这是因为 JavaScript 中的对象属性名不能包含破折号,而 JSON 数据中是允许的。

    7 年前
  • 用于友好的相对日期格式化的JavaScript库[已关闭]

    很抱歉,作为 AI 模型,我无法创建 markdown 格式的文章。但是我可以回答您有关友好的相对日期格式化的 JavaScript 库的问题,并提供一些示例代码。

    7 年前
  • 如何用空格或逗号分割JavaScript字符串?

    在前端开发中,我们经常需要对字符串进行操作。有时候,我们需要将一个字符串以空格或逗号分隔成多个小字符串,并对每个小字符串进行处理。本文将介绍如何使用JavaScript的内置方法来实现这一过程。

    7 年前
  • 拒绝执行JavaScript脚本

    在网络应用程序开发中,我们通常会使用 JavaScript 来实现动态交互和页面功能。然而,JavaScript 也可能会被用于攻击用户或网站,例如通过恶意注入脚本来窃取敏感信息或操纵网页。

    7 年前
  • 最佳JavaScript语法糖

    随着前端开发的不断发展,JavaScript语言也在不断演化。为了提高开发效率和代码质量,JavaScript社区引入了很多语法糖。本文将介绍最佳的JavaScript语法糖,并提供详细的学习指导。

    7 年前
  • 使用JavaScript获取下一个/前一个元素

    在前端开发中,我们经常需要使用JavaScript来操作DOM元素。其中,获取下一个或前一个元素是一种常见的需求。在本文中,我们将介绍如何使用JavaScript来获取下一个或前一个元素,并提供详细的...

    7 年前
  • 在 JavaScript 中获取两个日期之间的日期数组

    在前端开发中,我们经常需要处理日期。有时候,我们需要获取某个时间段内的所有日期,比如某个月份的所有日期,或者某个时间范围内的所有日期。本文将介绍如何在 JavaScript 中获取两个日期之间的日期数...

    7 年前
  • 如何在提交按钮的onclick事件中取消表单提交?

    当我们在前端开发过程中,需要对表单提交进行控制时,常常会遇到需要取消表单提交的情况。这篇文章将介绍如何在提交按钮的onclick事件中取消表单提交。 什么是表单提交? 表单提交是指将表单数据发送到服务...

    7 年前
  • 使用点符号字符串(重复)访问对象子属性

    在前端开发中,我们通常需要访问 JavaScript 对象的子属性。使用点符号字符串(重复)可以让我们更方便地访问嵌套对象的属性,而无需使用冗长的链式语法。本文将介绍如何使用点符号字符串(重复)访问对...

    7 年前
  • 基于内容的文本大小长度

    在前端开发中,文本是不可或缺的一部分。但是,有时候我们需要根据具体的内容来控制文本的大小和长度,以便更好地呈现内容。本文将介绍基于内容的文本大小长度技术,以及如何在前端开发中应用它。

    7 年前
  • 可能让你重新排序的指标:在Underscore.js中使用sortBy和sortByOrder

    当我们需要对一个数组进行排序时,通常会使用JavaScript内置的 sort 函数。但是,如果我们希望根据特定的指标来排序,该怎么办呢?这时候就可以考虑使用Underscore.js提供的 sort...

    7 年前
  • 如何用JavaScript(jQuery)将整数值添加到返回字符串的值中?

    在前端开发中,常常需要对字符串进行操作。其中一种常见的需求是将整数值添加到返回字符串的值中。本文将介绍如何使用JavaScript或jQuery来实现这个功能。 使用JavaScript 首先,我们可...

    7 年前
  • 在jQuery中添加逗号分隔数字

    在前端开发中,我们经常需要对数字进行处理,让它们更易读。其中一种处理方式是添加逗号来分隔数字的千位。例如,1000 可以被格式化为 1,000。 本文将介绍如何使用 jQuery 来添加逗号分隔数字,...

    7 年前
  • Node.js 列表的路径必须是绝对的或指定的根 res.sendfile [失败]解析 JSON

    在使用 Node.js 开发前端应用程序时,你可能会遇到一些问题,如何正确设置文件路径和解析 JSON 是常见的问题之一。在本文中,我们将深入探讨这些问题并提供有用的指导意义。

    7 年前
  • 如何使用JavaScript使div可见和不可见

    在前端开发中,有时需要通过JavaScript控制元素的显示和隐藏,本文将介绍如何使用JavaScript使一个 div 元素可见或不可见。 1. 使用CSS样式实现可见和不可见 首先,我们可以使用C...

    7 年前
  • 如何使用 jQuery 或 JavaScript 将按钮重定向到另一个页面

    在前端开发中,我们经常需要将用户从当前页面重定向到其他页面。这可以通过 JavaScript 或 jQuery 来实现。本文将介绍如何使用这两种方法来实现按钮重定向功能。

    7 年前
  • 新的前端工作方式:Chrome 和 Firefox 的区别

    在前端开发中,我们经常使用 Chrome 和 Firefox 这两个浏览器进行测试和调试。虽然它们都支持 HTML、CSS 和 JavaScript,但它们之间还是存在一些差异的。

    7 年前
  • 如何使用 PDF.js

    PDF.js 是一个基于 HTML5 技术的 JavaScript 库,用于在浏览器中显示 PDF 文档。它是由 Mozilla 开发和维护的开源项目。本文将介绍如何使用 PDF.js 在前端实现 P...

    7 年前
  • 什么是被动事件侦听器?

    在前端开发中,我们经常需要使用事件侦听器(event listener)来监听用户操作并做出相应的反应。而被动事件侦听器(passive event listener)则是一种特殊的事件侦听器,它可以...

    7 年前

相关推荐

    暂无文章