Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-offset().left为浮动元素传递错误的值_Jquery_Html_Css - Fatal编程技术网

jQuery-offset().left为浮动元素传递错误的值

jQuery-offset().left为浮动元素传递错误的值,jquery,html,css,Jquery,Html,Css,我在导航标签中浮动了元素。当我使用offset()函数时,会得到位置的奇怪浮点值,这些值是不正确的。这里怎么了 HTML JS 偏移量实际上返回的是正确的值,因为您的字体,因此您的nav,在像素上没有完全对齐。下面是如何获取“真实”导航宽度的方法: $("nav")[0].getBoundingClientRect().width 将元素A的左偏移量添加到nav的宽度中,您会发现添加效果非常好。明显的差异是元素A上的30px边距,它不包括在元素A的偏移量中,但包括在nav的宽度中 减去30p

我在导航标签中浮动了元素。当我使用offset()函数时,会得到位置的奇怪浮点值,这些值是不正确的。这里怎么了

HTML

JS


偏移量实际上返回的是正确的值,因为您的字体,因此您的
nav
,在像素上没有完全对齐。下面是如何获取“真实”导航宽度的方法:

$("nav")[0].getBoundingClientRect().width
将元素A的左偏移量添加到
nav
的宽度中,您会发现添加效果非常好。明显的差异是元素A上的30px边距,它不包括在元素A的偏移量中,但包括在
nav
的宽度中

减去30px后,你会得到物体的宽度

如果要删除小数点右侧的数字,可以使用以下函数之一,具体取决于所需内容:

  • Math.round()
    将四舍五入到最接近的整数
  • Math.floor()
    将向下取整
  • Math.ceil()
    将向下取整

让我知道这对您是否有意义。

在我的例子中,值是错误的,因为需要$(document).ready和setTimeout来获得正确的值

#navi {
height: 60px;
width: 100%;
  position: relative;
  clear: both;
background: lightgrey;
}

 .logo {
  float: left;
  margin-left: 0;
}

nav {
  position: relative;
  float: right;
}
a{
  margin-left: 30px;
}
$('a').eq(1).offset().left
$("nav")[0].getBoundingClientRect().width