Получение позиции текста по координатам
Собственно сабж.
Есть координаты, x и y начала текста и координаты x и y конца текста. Возможно ли по этим координатам определить позицию начала и конца текста? Иначе говоря выбрав на странице начало этого текста, мы получим некую пару координат, позицию элемента с текстом относительно страницы. Но можем ли мы, имея эту же пару координат на этой же странице каким-то образом получить текущую позицию текста, чтобы затем его выделить? |
Цитата:
|
Вы не совсем поняли. Определить нужно позицию текста для того, чтобы с текстом можно было произвести хоть какие-то операции.
|
..... Действительно не понимаю. можно определить в каком элементе находится текст(как явно-описать какой сценарий нужно выполнить если над опр. элементом произошло событе так и не явно-определить сначала над каким элементом произошло событие а потом решить какое действие нужно -не нужно в зависимости от элемента).чтобы потом производить действие над и элементом и соответственно со всем что в него вложено.
http://javascript.ru/tutorial/events...entx-y-pagex-y и прочитал твою пред тему- способ как просто получить срдержимое-тот же текст Свойство innerHTML устанавливает или получает всю разметку и содержание внутри данного элемента. var contents = elem.innerHTML elem.innerHTML = '<p>test!</p> P.S. о том что innerHTML можно получить содержимое элемента-тега узнал вчера.до этого нигде об этом ни слова не встречал |
Еще раз объясняю. У тебя есть координаты квадрата допустим. Четыре точки a,b,c,d, по две координаты(x и y) на каждую точку.
Загружается страница. Накладываем наш виртуальный квадрат на страницу по координатам. Получаем внутри этого квадрата какие-то элементы, текст, еще что-то. Вопрос. Можно ли определить, ЧТО там за элементы? А по поводу моей предыдущей темы, - не все так просто, иннерХТМЛ там уж точно не работал, советую попробовать результат этой функции потестировать в консоли, уж такие очевидные варианты я пробовал сразу. Аппенд результата этой функции, например, нельзя делать в окружении тэгов (к примеру document.body.append('<div>'+result+'div'); делать нельзя) Но не будем отвлекаться. Вопрос теперь поставлен более точнее? |
контейнер и получить дочерние элементы к нему.
Цитата:
|
Цитата:
Давайте вы все замечания по коду будете высказывать в нужной теме? Попробуйте поиграться с тем кодом, может тогда поймете, о чем я именно. |
.....тяжело говорить с человеком на разных языках. особенно когда он планирует сделать открытие и получить нобелевскую премию....
нет более глухого чем тот кто не хочет слышать.... один из вариантов можно отслеживать скрол ,а разметку всех элементов страницы создавать динамически- и заносить их массив потом сравнивать с координатами скрола и области выделенной и находить те что попадают в область есть и другие варианты ну а формулировать мысли стоит правильно и сразу -то получить текст из элемента теперь уже получить элементы из выделеной области |
Я обязательно учту это в дальнейшем. Нетривиальный вопрос, возможно.
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
для чего скрол-да потому что экран в видении мыши имеет координаты-не больше чем разрешение экрана а страница может по высоте и ширине привышать их. с текстом ты не можешь производить никаких действий-ты действия можешь проводить с элементами вмещающими текст-так понятно? так что сначала определи какие элементы попадают в твою область. исключения только элементы формы инпут и текстэрия |
ну дак паря если они для тебя очевидны ? какого ...я ты задаёшь тупые вопросы ? и хочешь на на них каких то новых ответов и возможностей кроме очевидных?:-E
ты получил что хотел -возват к #4 (permalink) почему то это тогда для тебя не было очевидным. и ещё одно-подумай почему никто не ответил на этот твой пост ... |
Я начинаю понимать, почему у вас такая карма.
Цитата:
Цитата:
Вы чушь говорите, причем полную. Посмотрите эту страничку, как определяются координаты мыши. Потом выделите элемент в консоли и посмотрите, как он будет меняться, если отскроллить в самый низ страницы, когда уже не будет видно результат вывода. И сравните это с вот той ересью, что вы сейчас написали. Это, если вам самому будет лень написать элементарный скрипт для проверки. Цитата:
Цитата:
|
Цитата:
что это по твоему если не стили CSS?:-E как их узнать, задавать и изменять програмно говорить не буду-поскольку это очевидно и прекрати "блистать" своим "умом"-ты показываешь только насколько ты туп:thanks: Остальное твоё даж комментировать не хочу.... а по поводу кармы ты не угадал почему она такая |
Цитата:
|
Цитата:
Вы вставьте этот бред на страничку, может тоже посмеетесь со мной вместе. 1) Как вы предлагаете определять позицию каждого элемента на странице в значениях top и left? Вы сумасшедший или просто идиот? Возьмите хотя бы главную гугла (google.com), и проставьте всем элементам там абсолюты и топы с лефтами. После чего, зная координаты точки, топ 108, лефт 108 найдите мне, откуда она будет начинаться. Судя по всему, это для вас будет очень просто. 2) weight? heigt? Да вы даже написать правильно элементарные свойства css (width, height) не можете, какого вы вообще тут делаете? Не мешайте, пожалуйста, идите к черту из топика :) Цитата:
Цитата:
Цитата:
Для тех, кто читает с конца, вопрос : возможно ли определить, какие элементы попадают в область, обозначенную четырьмя координатами экрана? |
Цитата:
мышь всегда привязана к разрешению монитора!! а страницы могут превышать это по размерам-доказательство-полосы скрола существуют!! |
Цитата:
|
Вы меня утомляете своей ересью. Вы абсолютно некомпетентны, несете полную чушь и пытаетесь хамить. Сделайте так, как я порекомендовал, - сначала посмотрите страничку апи jquery, ссылку на которую я вам дал, убедитесь, что координаты, выдаваемые pageX и pageY могут выходить далеко за рамки разрешения, потом попытайтесь осуществить свой план и проставить элементам топ и лефт, после чего можете смело идти к черту.
Попросил бы более поток вашего бессознательного прекратить, Шариков, тут в теме другие вопросы решаются, а не устраивается клоунада имени вас. |
Цитата:
|
Как глупо и неуклюже вы ушли от рекомендаций. Вы попробуйте, попробуйте, тогда уже будем думать, кто же клоун.
|
Цитата:
-обращаетесь к коллекции DOM-элементов всего своего BODY (можно для уменьшения количества просматриваемых элементов выбрать только элементы класса DIV). -перебирая последовательно все эти элементы определяете их абсолютные координаты с помощью getOffset() -сравниваете полученные абсолютные координаты всех этих элементов с координатами Вашего заданного прямоугольника и определяете попадание одних в другие. -таким образом Вы получите список необходимых элементов; дальше необходимо решить нужны ли Вам элементы, которые "накрывают" заданный прямоугольник, либо нужны только элементы, которые полностью умещаются в заданном прямоугольнике. function getOffsetRect(elem) { var box = elem.getBoundingClientRect() var body = document.body var docElem = document.documentElement var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft var clientTop = docElem.clientTop || body.clientTop || 0 var clientLeft = docElem.clientLeft || body.clientLeft || 0 var top = box.top + scrollTop - clientTop var left = box.left + scrollLeft - clientLeft return { top: Math.round(top), left: Math.round(left) } } function getOffsetSum(elem) { var top=0, left=0; while(elem) { top = top + parseInt(elem.offsetTop); left = left + parseInt(elem.offsetLeft); elem = elem.offsetParent; } return {top: top, left: left} } function getOffset(elem) { if (elem.getBoundingClientRect) return getOffsetRect(elem); else return getOffsetSum(elem); } to dmitriymar: непонятка со скроллером возникла между вами из-за того, что Вы думаете о заданных координатах, как о координатах мыши - в этом случае нужно учитывать скроллеры, а traa говорит об "абсолютно-абсолютных" координатах страницы (а не экрана), например, 3000х5000 px. |
Часовой пояс GMT +3, время: 10:39. |