根据像素偏移在 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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
简短的回答是否
这归结为 DOM 没有为您提供获取元素像素位置的方法。您可以对某些浏览器进行一些修改,但祝您好运,让解决方案发挥作用。
如果无法获取包含 div 的位置,则无法获取其中文本的位置。
抛开否,如果您要找到一种方法来获取 div 的像素高度,我将遵循类似于以下的过程。
The short answer is no
Basically it comes down to the DOM doesn't give a way for you to get an elements pixel position. There are sort of hacks you can do for some browsers, but good luck getting a solution working.
If you cannot get the position of the containing div, you are not going to get the position for the text within.
Leaving aside the no, if you were to find a way to get the div's pixel height, I would follow a procedure similar to the following.
聚会迟到了,很抱歉可能出现题外话。就我而言,文本存储为
中的
,并且我必须在 的垂直中心找到该元素(因此文本也是如此)
div
(用于根据其内容长度将div
动态“拆分”为 2 列布局)。所以我做了这个:主要思想是:
window
滚动到所需位置(以便在那里使用elementFromPoint()
)。至于
getBoundingClientRect()
或elementFromPoint()
,请查找相应的文章。请注意,offsetTop
是int
,对于此函数的工作来说不够准确。我简直不敢相信,但我必须坚持使用getBoundingClientRect()
(float
) 而不是offsetTop
。Late to the party and sorry for the possible off-topic. In my case, texts are stored as
<p>
s in a<div>
and I have to find the element (thus text too) in the vertical center of thediv
(for 'splitting' thediv
into 2-column layout dynamically according to its contents length). So I made this one:Main idea is:
window
to wanted position (in order to useelementFromPoint()
there).As for
getBoundingClientRect()
orelementFromPoint()
, please look for the corresponding articles. Note thatoffsetTop
isint
and was not enough accurate for this function to work. I can't believe it, but I had to stick togetBoundingClientRect()
(float
) instead ofoffsetTop
.