Skip to content

Commit db79140

Browse files
committed
Fix issues in the article and in the code samples
1 parent 8873239 commit db79140

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

  • 2-ui/3-event-details/5-drag-and-drop-objects

2-ui/3-event-details/5-drag-and-drop-objects/article.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ document.onmousemove = function(e) {
187187

188188
// аватар создан успешно
189189
// создать вспомогательные свойства shiftX/shiftY
190-
var coords = getCoords(avatar);
190+
var coords = getCoords(dragObject.avatar);
191191
dragObject.shiftX = dragObject.downX - coords.left;
192192
dragObject.shiftY = dragObject.downY - coords.top;
193193

@@ -343,7 +343,7 @@ function findDroppable(event) {
343343
return null;
344344
}
345345

346-
return target.closest('.droppable');
346+
return elem.closest('.droppable');
347347
}
348348
```
349349

@@ -376,9 +376,9 @@ var DragManager = new function() {
376376
}
377377
```
378378

379-
Всю работу будут выполнять обработчики `onMouse*`, которые оформлены как локальные функции. В данном случае они ставятся на `document` через `on...`, но это легко поменять это на `addEventListener`.
379+
Всю работу будут выполнять обработчики `onMouse*`, которые оформлены как локальные функции. В данном случае они ставятся на `document` через `on...`, но это легко поменять на `addEventListener`.
380380

381-
Код функция `onMouse*` мы подробно рассмотрели ранее, но вы сможете увидеть их в полном примере ниже.
381+
Код функции `onMouse*` мы подробно рассмотрели ранее, но вы сможете увидеть их в полном примере ниже.
382382

383383
Внутренний объект `dragObject` будет содержать информацию об объекте переноса.
384384

@@ -396,7 +396,7 @@ var DragManager = new function() {
396396

397397
Задачей `DragManager` является общее управление переносом. Что же касается действий при его окончании -- их должен назначить внешний код, который использует `DragManager`.
398398

399-
Можно сделать это через вспомогательные методы `onDrag*`, которые устанавливаются внешним кодом и затем вызываются фреймворком. Разработчик, подключив `DragManager`, описывает в этих методах, что делать при начале и завершении переноса. Конечно же, можно заменить методы `onDrag*` на генерацию "своих" событий.
399+
Можно сделать это через вспомогательные методы `onDrag*`, которые устанавливаются внешним кодом и затем вызываются фреймворком. Разработчик, подключив `DragManager`, описывает в этих методах, что делать при завершении или отмене переноса. Конечно же, можно заменить методы `onDrag*` на генерацию "своих" событий.
400400

401401
С использованием `DragManager` пример, с которого начиналась эта глава -- перенос иконок браузеров в компьютер, реализуется совсем просто:
402402

@@ -514,11 +514,11 @@ DragManager.onDragCancel = function(dragObject) {
514514
Уточнённый алгоритм Drag'n'Drop:
515515
<ol>
516516
<li>При `mousedown` запомнить координаты нажатия.</li>
517-
<li>При `mousemove` инициировать перенос, как только зажатый элемент передвинули на 3 пикселя или больше. Сообщить во внешний код вызовом `onDragStart`.</li>
517+
<li>При `mousemove` инициировать перенос, как только зажатый элемент передвинули на 3 пикселя или больше. Сообщить во внешний код вызовом `onDragStart`. При этом:</li>
518518
<ol>
519-
<li>Создать аватар, если можно начать перенос с этой точки `draggable`.</li>
520-
<li>Перемещать его по экрану, новые координаты ставить по `e.pageX/pageY` с учетом изначального сдвига элемента относительно курсора.</li>
521-
<li>Сообщать во внешний код о текущем `droppable` под курсором и позиции над ним вызовами `onDragEnter`, `onDragMove`, `onDragLeave`.</li>
519+
<li>Создать аватар, если можно начать перенос элемента `draggable` с данной позиции курсора.</li>
520+
<li>Переместить аватар по экрану, установив его новую позицию из `e.pageX/pageY` с учетом изначального сдвига элемента относительно курсора.</li>
521+
<li>Сообщить во внешний код о текущем `droppable` под курсором и позиции над ним вызовами `onDragEnter`, `onDragMove`, `onDragLeave`.</li>
522522
</ol>
523523
</li>
524524
<li>При `mouseup` обработать завершение переноса. Элемент под аватаром получить по координатам, предварительно спрятав аватар. Сообщить во внешний код вызовом `onDragEnd`.</li>

0 commit comments

Comments
 (0)