Skip to content

Commit f56edb5

Browse files
committed
2-ui/99-ui-misc/02: Translation Part 2
1 parent d76e714 commit f56edb5

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

2-ui/99-ui-misc/02-selection-range/article.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ libs:
66

77
# Selection і Range
88

9-
У цьому розділі ми розглянемо виділення у документі та в полях форми, наприклад в ,`<input>`.
9+
У цьому розділі ми розглянемо виділення у документі та в полях форми, наприклад, в `<input>`.
1010

1111
JavaScript може отримати доступ до наявного виділення тексту, вибирати/скасовувати виділення вузлів DOM повністю або частково, видаляти вибраний вміст із документа, або обгорнути його в тег тощо.
1212

1313
В кінці розділу ми підготували кілька готових рішень для типових задач (розділ "Підсумки"). Цілком можливо, цього буде достатньо щоб задовольнити всі ваші поточні потреби, проте ви отримаєте набагато більше, якщо прочитаєте статтю повністю.
1414

15-
З об’єктами `Range` та `Selection` досить легко можнарозібратись, і тоді вам не знадобляться готові рішення для розв'язання будь-якої задачі.
15+
З об’єктами `Range` та `Selection` можна розібратись досить легко, і тоді вам не знадобляться готові рішення для розв'язання задач.
1616

1717
## Range
1818

@@ -108,14 +108,14 @@ drawHtmlTree(selectPDomtree, 'div.select-p-domtree', 690, 320);
108108

109109
![](range-example-p-0-1.svg)
110110

111-
- The starting point has `<p>` as the parent `node`, and `0` as the offset.
111+
- Початкова точка має `<p>` як батьківський `node` і `0` як `offset`.
112112

113-
So we can set it as `range.setStart(p, 0)`.
114-
- The ending point also has `<p>` as the parent `node`, but `2` as the offset (it specifies the range up to, but not including `offset`).
113+
Тому ми можемо встановити його як `range.setStart(p, 0)`.
114+
- Кінцева точка також має `<p>` як батьківський `node`, але `2` як `offset` (вона вказує діапазон до, але не включаючи `offset`).
115115

116-
So we can set it as `range.setEnd(p, 2)`.
116+
Тому ми можемо встановити його як `range.setEnd(p, 2)`.
117117

118-
Here's the demo. If you run it, you can see that the text gets selected:
118+
Ось демо. Якщо ви запустите його, ви побачите, що текст буде виділено:
119119

120120
```html run
121121
<p id="p">Example: <i>italic</i> and <b>bold</b></p>
@@ -128,15 +128,15 @@ Here's the demo. If you run it, you can see that the text gets selected:
128128
range.setEnd(p, 2);
129129
*/!*
130130
131-
// toString of a range returns its content as text, without tags
131+
// toString діапазону повертає його вміст у вигляді тексту без тегів
132132
console.log(range); // Example: italic
133133
134-
// apply this range for document selection (explained later below)
134+
// застосуємо цей діапазон для виділення в document (пояснюється нижче)
135135
document.getSelection().addRange(range);
136136
</script>
137137
```
138138

139-
Here's a more flexible test stand where you can set range start/end numbers and explore other variants:
139+
Ось гнучкіший тестовий приклад, де ви можете встановити початкові/кінцеві номери діапазону та дослідити інші варіанти:
140140

141141
```html run autorun
142142
<p id="p">Example: <i>italic</i> and <b>bold</b></p>
@@ -152,32 +152,32 @@ From <input id="start" type="number" value=1> – To <input id="end" type="numbe
152152
range.setEnd(p, end.value);
153153
*/!*
154154
155-
// apply the selection, explained later below
155+
// застосувати виділення, поясненюється нижче
156156
document.getSelection().removeAllRanges();
157157
document.getSelection().addRange(range);
158158
};
159159
</script>
160160
```
161161

162-
E.g. selecting in the same `<p>` from offset `1` to `4` gives us the range `<i>italic</i> and <b>bold</b>`:
162+
Наприклад, виділення у тому самому `<p>` від `offset` `1` до `4` дає нам діапазон `<i>курсив</i> і <b>жирний</b>`:
163163

164164
![](range-example-p-1-3.svg)
165165

166-
```smart header="Starting and ending nodes can be different"
167-
We don't have to use the same node in `setStart` and `setEnd`. A range may span across many unrelated nodes. It's only important that the end is after the start in the document.
166+
```smart header="Початковий і кінцевий вузли можуть бути різними"
167+
Нам не потрібно використовувати однаковий вузол у `setStart` і `setEnd`. Діапазон може охоплювати багато непов’язаних вузлів. Важливо лише, щоб кінець був після початку в документі.
168168
```
169169

170-
### Selecting a bigger fragment
170+
### Виділення більшого фрагмента
171171

172-
Let's make a bigger selection in our example, like this:
172+
Давайте збільшемо розмір виділеного фрагмента:
173173

174174
![](range-example-p-2-b-3.svg)
175175

176-
We already know how to do that. We just need to set the start and the end as a relative offset in text nodes.
176+
Ми вже знаємо, як це зробити. Нам просто потрібно встановити початок і кінець як відносне зміщення в текстових вузлах.
177177

178-
We need to create a range, that:
179-
- starts from position 2 in `<p>` first child (taking all but two first letters of "Ex<b>ample:</b> ")
180-
- ends at the position 3 in `<b>` first child (taking first three letters of "<b>bol</b>d", but no more):
178+
Нам потрібно створити діапазон, який:
179+
- починається з позиції 2 у першому дочірньому вузлі елемента `<p>` (беручи всі, крім двох перших літер "Ex<b>ample:</b> ")
180+
- закінчується на позиції 3 у `<b>` в першому дочірньому вузлі (бере перші три літери "<b>bol</b>d", але не більше):
181181

182182
```html run
183183
<p id="p">Example: <i>italic</i> and <b>bold</b></p>
@@ -190,14 +190,14 @@ We need to create a range, that:
190190
191191
console.log(range); // ample: italic and bol
192192
193-
// use this range for selection (explained later)
193+
// застосуємо цей діапазон для виділення в document (пояснюється нижче)
194194
window.getSelection().addRange(range);
195195
</script>
196196
```
197197

198-
As you can see, it's fairly easy to make a range of whatever we want.
198+
Як бачите, досить легко створити діапазон для будь-чого.
199199

200-
If we'd like to take nodes as a whole, we can pass elements in `setStart/setEnd`. Otherwise, we can work on the text level.
200+
Ба більше, якщо ми хочемо взяти вузли як ціле, треба передати елементи замість текстових вузлів в `setStart/setEnd`. Інакше це буде працювати на рівні тексту.
201201

202202
## Range properties
203203

0 commit comments

Comments
 (0)