phi*_*y77 7 javascript jquery offset
我有以下HTML:
<div><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit <strong id="s">esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</strong></p></div>
Run Code Online (Sandbox Code Playgroud)
使用CSS将DIV的宽度固定为600px.现在,我想找到<strong>元素的offset().left .所以我做了:
alert( $("#s").offset().left );
Run Code Online (Sandbox Code Playgroud)
然而,这似乎没有产生正确的值,因为我可以清楚地看到在600px宽度的中间看到强元素,但是我获得的偏移值仅为8px.
如何找到内联强元素的offset().left值?
Jam*_*mes 26
这是发生了什么:

由于内联元素跨越多行,jQuery将为您提供该元素的最左侧位置,而不是元素开头的偏移量.
要解决此问题,请尝试以下插件:
jQuery.fn.inlineOffset = function() {
var el = $('<i/>').css('display','inline').insertBefore(this[0]);
var pos = el.offset();
el.remove();
return pos;
};
Run Code Online (Sandbox Code Playgroud)
该插件将创建一个临时元素并将其插入目标元素之前 - 然后它将返回该临时元素的偏移量.
用法示例:
alert( jQuery('strong').inlineOffset().left );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6678 次 |
| 最近记录: |