3.6. Объект event
Объект event предоставляет информацию, связанную с событием в сценарии. Этот объект доступен только в случае возникновения последовательности событий.
Основные свойства объекта event
srcElement |
Возвращает элемент, который первый сгенерировал событие |
type |
Возвращает имя сгенерированного события. |
clientX, clirentY, x, y |
Координаты указателя мыши относительно левого верхнего угла окна браузера |
offsetX, offsetY |
Координаты указателя относительно координат элемента, вызвавшего событие |
screenX, screenY |
Координаты указателя мыши относительно левого верхнего угла экрана |
altKey |
Возвращает true, если нажата клавиша Alt |
ctrlKey |
Возвращает true, если нажата клавиша Ctrl |
shiftKey |
Возвращает true, если нажата клавиша Shift |
button |
Идентифицирует нажатую кнопку мыши (0 – ни одна кнопка не нажата, 1 – нажата левая кнопка, 2 – нажата правая кнопка, 3 - нажата средняя кнопка) |
Пример. Отображение координат указателя мыши в строке состояния при его перемещении над документом.
<html>
<script language=javascript>
var str="Test";
str=str.bold();
</script>
<style type="text/css">
body{font-family: arial; font-size: 10pt}
span{position:absolute; left:100}
</style>
<body onmousemove="window.status=
' clientX: ' + window.event.clientX +
' clientY: ' + window.event.clientY+
' x: ' + window.event.x +
' y: ' + window.event.y +
' offsetX: ' + window.event.offsetX +
' offsetY: ' + window.event.offsetY +
' screenX: ' + window.event.screenX +
' screenY: ' + window.event.screenY" >
<br><br><br>
<span> Привет!!!
</span>
</body>
</html>
Пример. Перемещение слоев.
В теги позицированных фрагментов текста добавляется пользовательский атрибут dragEbld, информирующий программу о том, что фрагмент можно перемещать. Наличие у фрагмента текста требуемого атрибута проверяется с помощью метода getAttribute().
При определении перемещаемого фрагмента, его zIndex увеличивается на 1, чтобы перемещаемый слой находился "выше" всех остальных.
<html>
<script language=javascript>
var n=1;
var draggedEl=null;
var shiftX, shiftY;
function moveMouse(){
if((event.button==1)&&(draggedEl!=null)){
draggedEl.style.pixelTop = event.clientY - shiftY;
draggedEl.style.pixelLeft= event.clientX - shiftX;
}
}
function isDragEnabled(el){
if(el!=null){
if(el.getAttribute("dragEbld") != null) return el;
}
return null;
}
function pressMouseDown(){
var el = isDragEnabled(event.srcElement);
if(el != null){
draggedEl = el;
shiftX = event.offsetX;
shiftY = event.offsetY;
draggedEl.style.zIndex=++n;
}
}
</script>
<body onmousedown = "pressMouseDown();"
onmousemove = "moveMouse();"
onmouseup = "draggedEl = null;" >
<h2 style="position:absolute; left:100; top:100; color:red; z-index:1" dragEbld>
Добро пожаловать!
</h2>
<h2 style="position:absolute; left:100; top:300;
z-index:1" dragEbld>
Wellcome!
</h2>
</body>
</html>
4. Задания для самостоятельной работы
4.1. Проверка корректности ввода текстовых данных.
Создать web-страницу, содержащую текстовые поля для ввода персональных данных с ограничениями согласно таблице:
№ |
Текстовое поле |
Ограничения |
1. |
Фамилия |
Буквы русского алфавита. Первая - заглавная |
2. |
Имя |
|
3. |
Отчество |
|
4. |
Число, месяц и год рождения |
Шаблон: dd-mm-yyyy. Например, 18-10-1986. Предусмотреть ограничения на вводимые числа |
5. |
|
Латинский шрифт, цифры. Первый символ – буква. Предусмореть наличие разделителей: @ и . |
6. |
Логин |
Первый символ – буква. Не менее 6 символов |
7. |
Пароль |
Не может содержать одни цифры. |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.