JavaScript Selection.anchorNode — де почалося виділення
Властивість anchorNode повертає вузол, у якому користувач почав виділення.
Загальний опис
Це не те саме, що початок діапазону. Якщо виділяти знизу вгору, якір опиниться після фокуса — тобто в документі він буде правіше.
Range завжди нормалізований (початок раніше за кінець), а Selection пам'ятає напрямок, у якому тягнули мишу. Саме тому в нього є окремі anchorNode і focusNode.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| anchorNode | 1+ | 1+ | 1+ | 7+ | 12+ | 9+ |
| Переглядач | ||||
|---|---|---|---|---|
| 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 ? 'виділяли знизу вгору' : 'згори вниз');
Коментарі
Коментарів ще немає — будьте першим!