2014-10-20 8 views
-1

我正在在線閱讀網站上工作,並且希望將文章放在固定大小的div中。這篇文章是一個沒有換行符的字符串,但它會在div中的許多行中顯示。如果我確切知道字體家族和div的寬度,是否有機會獲取特定單詞的行號。 (我想這樣做是因爲文章有一些與它相關的註釋,並且我需要確保註釋出現在正確的位置。)在服務器或客戶端上完成這項工作都可以。獲取將放置在固定大小的div中的文章中的特定單詞的行號

+0

也許?你可以跟我們分享你的嘗試嗎? – 2014-10-20 13:03:48

+0

http://stackoverflow.com/questions/783899/how-can-i-count-text-lines-inside-an-dom-element-can-i – Robin 2014-10-20 13:06:11

+0

我真的不知道該怎麼做,但我認爲製作將書籍分成頁面的電子書可能會遇到問題,否則他們甚至不知道有多少頁面在那裏。 – GiantWing 2014-10-20 14:06:27

回答

0

不知道如何準確,這僅僅是它正在與小提琴:http://jsfiddle.net/pp2jawoz/

var searchWord = 'condimentum'; 
var searchContainer = $('[data-search="container"]'); 

searchContainer.html(searchContainer.html().replace(searchWord, '<span class="searched" data-search="word">' + searchWord + '</span>')); 

var searchWordContainer = $('[data-search="word"]'); 
var line = Math.round((searchWordContainer.offset().top - searchContainer.offset().top)/searchWordContainer.height()); 

console.log(line); 

更新搗鼓字體和多個詞搜索:http://jsfiddle.net/pp2jawoz/2/

注:該腳本可以作爲只要字體高度隨着字體的變化而設置,因爲每種字體略有不同,這也可能取決於操作系統。

+0

我認爲我們可能需要使用font-family信息,因爲不同的font-family使用不同的大小來保存特定的字符。一些像Courier這樣的固定寬度的字體和像sans serif這樣的不固定字體會在這個問題上得到不同的答案。 – GiantWing 2014-10-20 14:12:07

+0

在將文章放入DOM之前,我需要知道行號,因爲我想介紹與文章部分相關的註釋。無論如何,非常感謝! – GiantWing 2014-10-20 14:21:05

+0

除非你有字體,div和行高的每個字符的確切大小,那麼在插入dom之前這是不可能的。 – 2014-10-20 14:50:05