JavaScript Selection.anchorNode — де почалося виділення


Властивість anchorNode повертає вузол, у якому користувач почав виділення.

автор: NagarD

Загальний опис

Це не те саме, що початок діапазону. Якщо виділяти знизу вгору, якір опиниться після фокуса — тобто в документі він буде правіше.

Range завжди нормалізований (початок раніше за кінець), а Selection пам'ятає напрямок, у якому тягнули мишу. Саме тому в нього є окремі anchorNode і focusNode.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
anchorNode 1+ 1+ 1+ 7+ 12+ 9+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
anchorNode yes yes yes yes

Приклади

+ запропонувати свій приклад у пісочниці

Визначити напрямок виділення.

const selection = window.getSelection();

const backwards = selection.anchorNode === selection.focusNode
    ? selection.anchorOffset > selection.focusOffset
    : selection.anchorNode.compareDocumentPosition(selection.focusNode)
        === Node.DOCUMENT_POSITION_PRECEDING;

console.log(backwards ? 'виділяли знизу вгору' : 'згори вниз');
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід