рони,
ха, точно, мы же так определяли фзическую позицию курсора в textarea, все забыли а ты крут) |
мне вот как раз надо на большом тексте (1-2 миллиона знаков).
надо бы придумать что-то. я вот если честно все равно не совсем понимаю как это работает. вот тут я так понимаю происходит разбиение на блоки $('body div').contents().each(function(){ if(this.nodeType == 3) { var _this = $(this); var _swap = $('<div id="textnodewrapper' + tmp_id + '" />'); $.each(_this.text().split(' '),function(i,val){ if($.trim(val).length > 0) { _swap.append('<span class="textnode">' + val + '</span>'); } }); _swap.insertBefore(_this); _this.remove(); } tmp_id++; }); я так понимаю делится по словам. в принципе мне не нужна точность до слова. можно по 5 бить, плюс это вообще можно сделать сразу один раз и вообще на сервере. но вот как сделать так чтоб при определении видно или нет кусок, не приходилось пробегать весь текст. на ум пока приходит только иерархическая разбивка |
var _this = $(this); var $this = $(this); |
$.each(_this.text().split(' '),function(i,val){ if($.trim(val).length > 0) { _swap.append('<span class="textnode">' + val + '</span>'); } }); не пойму что-то от куда это val берется, и i тоже? |
mitiya, это передаются аргументы в функцию
|
|
В каких браузерах это должно работать? Есть метод document.elementFromPoint, который поможет отфильтровать элементы и затем уже применить способ рони
|
хотя бы во всех современных, включая мобильные
|
А вариант использования моноширинного шрифта не подходит?
|
с моноширинным шрифтом все не так просто как кажется.
в тесте встречаются еще и символы переноса строки, иногда несколько подряд. На таком большом тексте это вызывает большую ошибку при попытке посчитать где какой символ находится. Вообще, document.elementFromPoint вроде как работает во всех браузерах сейчас, так что это может быть каким не каким решением. |
Часовой пояс GMT +3, время: 03:27. |