Jquery offset().left和position().lift返回意外值
Jquery offset().left and position().left returns unexpected value
我正在尝试获取每个段落中句子的左位置值。我尝试了.offset().left和position().lift,但它们都返回了错误/意外的值。他们总是18岁。
看看:https://jsfiddle.net/9tgkvqgk/1/
var offset = $(this).offset();
var position = $(this).position();
$('i').html(offset.left + " - - - " + position.left);//display
看起来只有一行的span返回正确/良好的值,但多行的句子则不然。
我正在尝试显示一个工具提示,我需要始终在div#frame元素中显示它。我试图得到句子开头的左边值,这样我就可以在正确的地方显示工具提示。
任何人都知道为什么它没有显示正确的值,或者我如何找出这个句子是从左边、中间还是右边开始。
谢谢。
返回的值不是"错误的"。元素基本上被包裹在一个不可见的框中,并返回该框的左偏移量。由于它跨越了多行,因此偏移量等于段落的左边距,这不是您所期望的。您想要的是<span>
的第一个字母的偏移量,而不是整个<span>
的偏移量。
试着使用这个答案的变体,将新的子span
包裹在字符串的第一个字母周围,并获得它的偏移量。
function spanFirstLetter(elem) {
var elem = $(elem).contents().filter(function() {
return this.nodeType == 3
}).first(),
text = elem.text().trim(),
first = text.slice(0, 1);
if (!elem.length) return;
elem[0].nodeValue = text.slice(first.length);
// wrap the first letter in a unique class
elem.before('<span class="first-letter">' + first + '</span>');
};
$('#frame p').find('span').hover(
function(e) {
// IN
$(this).addClass('y');
spanFirstLetter(this); // wrap the first letter
var offset = $('.first-letter',this).offset();
// get the first letter offset
var position = $('.first-letter',this).position();
$('i').text(offset.left + " - - - " + position.left);
},
function(e) {
// OUT
$(this).removeClass('y')
.find('.first-letter').replaceWith($('.first-letter',this).text());
// remove the first-letter span by replacing it with its own .text()
}
)
https://jsfiddle.net/9tgkvqgk/5/
相关文章:
- Javascript:函数返回意外结果
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- JavaScript Regexp.test返回意外结果
- 解析JSON返回意外的标识符错误
- JavaScript自定义函数返回意外值
- Webpack require 方法返回意外的对象
- JavaScript unshift 参数返回意外结果
- window.getSelection() 返回意外的值
- jQuery ajax 返回意外的数据类型
- 为什么异步并行回调会返回意外结果
- Jquery offset().left和position().lift返回意外值
- ExtJS ComboBox验证返回意外结果
- ValueIterator.toArray().indexOf()返回意外结果
- JavaScript中的Caesar密码返回意外结果
- 将类添加到返回意外结果的元素
- jQuery addClass()返回意外结果
- 正则表达式javascript返回意外结果
- jQuery正则表达式返回意外结果
- Javascript从随机字符串返回意外日期
- 返回意外的事件监听器结果