2015-04-04 73 views
0

我使用CSS Multicolumn來顯示一個html文件,列的寬度設置爲窗口的寬度,所以只有一列顯示在一個時間_windowWidth = $(window).innerWidth();。列的高度也設置爲窗口_windowHeight = $(window).innerHeight();的高度。並在css中溢出容器被隱藏overflow: hiddenjquery在CSS多列中獲取可見列的文本

,我可以改變$('#content').css({"-webkit-transform":"translate(" + (-1 * _column * (_windowWidth + _columnGap)) + "px,0px)"});

我想要的是可見的列得到當前可見列文本

$('#content').children(":visible").text();返回所有列文本。

我發現最近的問題,答案是:Get text in CSS3 column?,他認爲這樣的功能:

var getAllTextInColumn = function(rect){ 
    /* 
     rect should be the size and x,y of the column 
     { top, left, width, height } 
    */ 

    if(document.caretRangeFromPoint){ 
     var caretRangeStart = document.caretRangeFromPoint(rect.left, rect.top); 
     var caretRangeEnd = document.caretRangeFromPoint(rect.left+rect.width-1, rect.top+rect.height-1); 
    } else { 
     return null; 
    } 

    if(caretRangeStart == null || caretRangeEnd == null) return null; 

    var range = document.createRange(); 
    range.setStart(caretRangeStart.startContainer, caretRangeStart.startOffset); 
    range.setEnd(caretRangeEnd.endContainer, caretRangeEnd.endOffset); 

    return range.toString(); 
}; 

但我dont't知道如何讓一列rect

(例如,第3列)。任何幫助,將不勝感激。

tnx提前。

UPDATE:

這個功能真的有用,但我無法弄清楚它的參數,如果我通過left = 0 , top = 0 , width = _windowWidth , height = _windowHeight它給我的第一列的文本。

如果我通過left = _column * (_windowWidth + _columnGap) , top = 0 , width = _windowWidth , height = _windowHeight和_column是或它給第一列的文字和如果_column> 2的caretRangeStartnull

如果我通過left = 0 , top = 0 , width = _column * (_windowWidth + _columnGap) + _windowWidth , height = _windowHeightcaretRangeEnd將成爲null,所以我不能讓它與任何組合工作,可能有人可以幫助我。

回答

0

從您的描述中,你並不真正隱藏或顯示你的專欄。你的基本上是改變x的偏移量。

你應該做相反的方式輪:獲取x偏移量,並通過將其劃分 - (_windowWidth + _columnGap)

來獲取文本嘗試:

$( '#內容')孩子(。 ).EQ(指數)的.text();

+0

它給了我當前的列號,我想在**欄中輸入**文本**! – mehdok 2015-04-04 14:09:51

+0

在你編輯的答案中,'index'與**列**無關,它表示第3或4段左右。 – mehdok 2015-04-05 04:02:51