Javascript 根据偏移量(以像素为单位)查找DIV中的特定文本

Javascript 根据偏移量(以像素为单位)查找DIV中的特定文本,javascript,jquery,css,image,css-position,Javascript,Jquery,Css,Image,Css Position,我想在文本块中插入一个图像标记,这样图像在DIV中向下100像素 <div> A lot of text in a text block and a <img tag> somewhere that is floated left or right and positioned inside the text block </div> 文本块中的大量文本和 向左或向右浮动并定位在文本块内的 因此,上面的标记放在要浮动的文本块中,以

我想在文本块中插入一个图像标记,这样图像在DIV中向下100像素

    <div>
    A lot of text in a text block and a <img tag> somewhere
that is floated left or right and positioned inside the text block
    </div>

文本块中的大量文本和
向左或向右浮动并定位在文本块内的
因此,上面的标记放在要浮动的文本块中,以便它在DIV中定位为100px向下。现在,这不能静态地完成,它必须在javascript中完成,因为DIV中的100px向下可能由不同的文本表示,这取决于字体呈现问题等


那么,有没有一种方法可以在DIV中找到100px以下的文本块中的“单词”呢?jQuery也许?

简短的回答是

基本上,它归结为DOM并没有为您提供获取元素像素位置的方法。对于某些浏览器,您可以进行一些黑客攻击,但祝您好运,找到一个可行的解决方案

如果无法获取包含div的位置,则无法获取其中文本的位置

抛开,如果您想找到一种获得div像素高度的方法,我将遵循以下类似的过程

  • 从div内部获取文本并将其存储在本地变量中。
  • 在文本中每个单词的循环中:
  • 在单词的前面插入一个div标记
  • 获取div标记的像素位置
  • 使用此选项确定最接近像素位置100向下的单词
  • 找到最近的位置后,创建一个文档片段,为div构建新的内部
  • 用文档片段替换div的内容

  • 对不起,我刚才毁了它:(哈哈,这是一个非常好的解决方案。我必须测试它,看看它在速度方面是如何工作的,听起来它可能会非常消耗cpu。每个循环都会导致回流。如果你有很多单词,这是一个很大的工作。只是一个想法。使用二进制搜索的概念,你可以大大减少需要进行的回流和位置检查的数量是的。我现在明白了。我认为我应该先计算行高、字体大小,然后计算容器的宽度,找到插入的可能位置,并将其定位在那里,然后将其前后移动一个单词,直到完美为止。