JavaScript. Подробное руководство, 6-е издание
Шрифт:
// Это событие обработано и не должно передаваться другим обработчикам
if (event.stopPropagation)
event.stopPropagation; // Стандартная модель
else
event.cancelBubble = true; // IE
// Предотвратить выполнение действий, предусмотренных по умолчанию,
if (event.preventDefault)
event.preventDefault; // Стандартная модель
else
event.returnValue = false; // IE
/**
* Этот обработчик перехватывает события mousemove, возникающие
* в процессе буксировки элемента. Он отвечает за перемещение элемента.
**/
function moveHandler(e) {
if (!е) е = window.event; // Модель событий IE
// Переместить элемент в позицию указателя мыши с учетом позиций
// полос прокрутки и смещений относительно начального щелчка,
var scroll = getScrollOffsets;
elementToDrag.style.left = (e.clientX + scroll.x - deltaX) + "px";
elementToDrag.style.top = (e.clientY + scroll.у - deltaY) + "px";
// И прервать дальнейшее распространение события.
if (е.stopPropagation)
е.stopPropagation; // Стандартная модель
else
е.cancelBubble = true; // IE
}
/**
* Этот обработчик перехватывает заключительное событие mouseup,
* которое завершает операцию буксировки.
**/
function upHandler(e) {
if (!е) е = window.event; // Модель событий IE
// Удалить перехватывающие обработчики событий,
if (document.removeEventListener) { // Модель событий DOM
document.removeEventListenerC'mouseup", upHandler, true);
document.removeEventListener("mousemove", moveHandler, true);
}
else
if (document.detachEvent) { // Модель событий IE 5+
elementToDrag.detachEvent("onlosecapture", upHandler);
elementToDrag.detachEvent("onmouseup", upHandler);
elementToDrag.detachEvent("onmousemove", moveHandler);
elementToDrag.releaseCapture;
}
// И прервать дальнейшее распространение события.
if (е.stopPropagation)
е.stopPropagation; // Стандартная модель
else
е.cancelBubble = true; // IE
}
}
Следующий фрагмент демонстрирует порядок использования функции drag в HTML-файле (это упрощенная версия примера 16.2 с добавленной поддержкой буксировки):
<script src="getScrollOffsets. js"x/script> <!-- требуется функция drag-->
<script src= "Drag. js"x/script> <!-- определение drag -->
<!-- Буксируемый элемент -->
<div style="positionabsolute; left:100px; top:100px; width:250px;
background-color: white; border: solid black;">
<!-- "Заголовок" окна. Обратите внимание на атрибут onmousedown.
– ->
– ->
<div style= "background-color: gray: border-bottom: dotted black;
padding: 3px; font-family: sans-serif; font-weight: bold;"
onmousedown="drag(this.parentNode, event);">
Перетащи меня <!-- Содержимое заголовка -->
Поделиться:
Популярные книги
Я все еще не царь. Книга XXVI
26. Дорогой барон!
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Одержимая (авторский сборник)
Фантастика:
фэнтези
научная фантастика
7.80
рейтинг книги
Корпорация М.И.Ф. (сборник)
Фантастика:
юмористическая фантастика
8.79
рейтинг книги
Геном хищника. Книга седьмая
7. Я - Легенда!
Фантастика:
боевая фантастика
рпг
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Крови. Книга V
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Завещание
Детективы:
триллеры
7.00
рейтинг книги
Обрыв
Проза:
классическая проза
русская классическая проза
8.93
рейтинг книги
Кодекс Охотника. Книга IX
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Бастард
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 11
11. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Древесный маг Орловского княжества 3
3. Орловское княжество
Фантастика:
аниме
сказочная фантастика
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Черный маг императора 3
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Древесный маг Орловского княжества 6
6. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00