我使用CSS Multicolumn來顯示一個html文件,列的寬度設置爲窗口的寬度,所以只有一列顯示在一個時間_windowWidth = $(window).innerWidth();
。列的高度也設置爲窗口_windowHeight = $(window).innerHeight();
的高度。並在css中溢出容器被隱藏overflow: hidden
。jquery在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的caretRangeStart
將null
。
如果我通過left = 0 , top = 0 , width = _column * (_windowWidth + _columnGap) + _windowWidth , height = _windowHeight
caretRangeEnd
將成爲null
,所以我不能讓它與任何組合工作,可能有人可以幫助我。
它給了我當前的列號,我想在**欄中輸入**文本**! – mehdok 2015-04-04 14:09:51
在你編輯的答案中,'index'與**列**無關,它表示第3或4段左右。 – mehdok 2015-04-05 04:02:51