0

我需要我的插件来检测元素的换行符,这里是代码:

$.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 时才有效。但是如果我需要设置不同的高度怎么办?我需要这个解决方案,因为如果我尝试在新行的第一个字母之前添加元素,它会出现在它的左上角,我只需要在文本行被破坏时添加。

4

2 回答 2

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
...
于 2013-11-04T10:49:17.700 回答
0

我使用的一种方法是通过将文本拆分为空间数组并使用 span 标签连接 aray 来将每个单词包装在 span 中,循环遍历所有 span 以检查位置。当顶部增加时,您发现换行符

于 2013-11-03T23:25:07.303 回答