我需要我的插件来检测元素的换行符,这里是代码:
$.fn.inlineOffset = function (){
if ($(this).css('text-indent') == '0px' && $(this).height() != 17) {
var el = $('<i/>').css('display', 'inline').insertBefore(this[0]);
pos = el.offset();
el.remove();
return pos;
}
else {
var pos = $(this).offset()
return pos;
}
};
正如您所看到的,只有当元素的高度为17px时才会起作用。但是,如果我需要设置不同的高度怎么办?我需要这个解决方案,因为如果我尝试在新行的第一个字母之前添加元素,它会出现在它的左上角,我只需要在文本行被破坏时添加。
答案 0 :(得分:0)
我使用的一种方法是通过在空间中将文本拆分为数组并使用span标记连接aray来遍历跨度中的每个单词,遍历所有跨度以检查位置。顶部增加时你发现换行
答案 1 :(得分:0)
我在飞行中制定了一个解决方案。试一试:http://jsfiddle.net/6V2Pd/1/ 关键点是以下代码行:
//here we get the calculated height of the text element when white space is nowrap (single line)
$target.css('white-space', 'nowrap');
var nowrapHeight = $target.height();
//here we get the calc. height when white space is normal (breaks are allowed)
$target.css('white-space', 'normal');
var normalwrapHeight = $target.height();
// here we are going to compare the two values and come to a conclusion
// if nowrapHeight != normalwrapHeight => it's a multiline text
...