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);">
Перетащи меня <!-- Содержимое заголовка -->
Поделиться:
Популярные книги
Слезы Эйдена 1
11. Глэрд
Фантастика:
боевая фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Личный аптекарь императора. Том 2
2. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Цикл романов "Целитель". Компиляция. Книги 1-17
Целитель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Гром Раскатного. Том 3
3. Штормовой Предел
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 10
10. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Последний Паладин. Том 7
7. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ученик. Книга вторая
2. Ученик
Фантастика:
фэнтези
5.40
рейтинг книги
Князь Андер Арес 5
5. Андер Арес
Фантастика:
историческое фэнтези
фэнтези
героическая фантастика
5.00
рейтинг книги
Последний Паладин. Том 12
12. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Гримуар темного лорда II
2. Гримуар темного лорда
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Вперед в прошлое 3
3. Вперёд в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 30
30. История Телепата
Фантастика:
альтернативная история
аниме
фэнтези
5.00
рейтинг книги
Я граф. Книга XII
12. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00