Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Координаты курсора относит. экрана contenteditable


Автор: denlem55 13.6.2018, 11:41
Как узнать координаты курсора в элементе contenteditable, в пикселах относительно документа либо экрана либо элемента contenteditable ?
Сейчас узнаю (см. код ниже) координаты выделенного фрагмента путем определения координат выделенной области через getSelection , но это не работает когда строка пустая (нажимаю enter) - координаты в данном случае обнуляются (cursorCoords.x=0, cursorCoords.y=0)
Код

<style>
    #editfield{
        width: 100px;
        height: 100px;
        border: 1px #777 solid;
    }
</style>
<div id="editfield" contenteditable></div>
<script>
    $("#editfield").on("click keyup", function(){
        var sel = window.getSelection(),
            range = sel.getRangeAt(0),
            cursorCoords = range.getBoundingClientRect();
        console.log("cursorCoords: "+ cursorCoords.x + " х " + cursorCoords.y);
    });
</script>

Автор: ksnk 13.6.2018, 15:06
Можно добавить event в параметр анонимной функции 
Цитата

function(event){

и, когда не удалось получить разумный range, смотреть event.clientX и event.clientY

Автор: denlem55 13.6.2018, 15:21
Цитата(ksnk @  13.6.2018,  15:06 Найти цитируемый пост)
Можно добавить event в параметр анонимной функции 

Частично работает, спасибо, но только с событием "click". Но с событием "keyup" все равно выдает 0

Автор: ksnk 13.6.2018, 18:09
Когда клавиша нажата - откуда брать выделенный размер?
Можно, конечно, следить за движением мыши, поставив прослушку на событие "mousemove", запоминая последнее положение курсора, но это довольно дорогое удовольствие.
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)