узнать направление выделения текста

есть текст в несколько строк текста:

<div>
    <p>длинный длинный, очень длинный текст</p>
    <p>длинный длинный, очень длинный текст</p>
    <p>длинный длинный, очень длинный текст</p>
</div>

при событии selectionchange нужно каким то образом получать направление выделения текста: "вверх", "вниз" или "в той же строке". реально подобное реализовать?


Ответы (1 шт):

Автор решения: Miha

Может вот так

const getDirection = function () {
    const selection = window.getSelection();
    const range = document.createRange();
    range.setStart(selection.anchorNode, selection.anchorOffset);
    range.setEnd(selection.focusNode, selection.focusOffset);

    return range.collapsed ? 'backward' : 'forward';
};

document.addEventListener("selectionchange", () => {
  console.log(getDirection());
});
<div>
    <p>длинный длинный, очень длинный текст</p>
    <p>длинный длинный, очень длинный текст</p>
    <p>длинный длинный, очень длинный текст</p>
</div>

→ Ссылка