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);">
Перетащи меня <!-- Содержимое заголовка -->
Поделиться:
Популярные книги
Легенды и мифы Древнего Востока
Древний мир
Документальная литература:
биографии и мемуары
6.25
рейтинг книги
Беглец
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Александр Великий или Книга о Боге
Проза:
историческая проза
8.20
рейтинг книги
Андер Арес
1. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Ричард Длинные Руки – эрцфюрст
Фантастика:
фэнтези
5.00
рейтинг книги
An ordinary sex life
Любовные романы:
современные любовные романы
love action
5.00
рейтинг книги
Место
Проза:
современная проза
5.00
рейтинг книги
Тайная история американской империи: Экономические убийцы и правда о глобальной коррупции
Документальная литература:
публицистика
8.33
рейтинг книги
Последний реанорец. Том IV
3. Высшая Речь
Фантастика:
фэнтези
5.20
рейтинг книги
Йога т4
5.00
рейтинг книги
Разбитое окно
8. Райм и Сакс
Детективы:
прочие детективы
7.75
рейтинг книги
Великие мифы и легенды. 100 историй о подвигах, мире богов, тайнах рождения и смерти
Старинная литература:
мифы. легенды. эпос
5.00
рейтинг книги
Том 3. Советский и дореволюционный театр
3. Собрание сочинений в восьми томах
Документальная литература:
критика
5.00
рейтинг книги
Кодекс Охотника. Книга XVII
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00