Динамическое управление позиционированием элементов
Можно, конечно, решить эту проблему, присвоив каждой плашке свое значение стилевого свойства z-index, однако проще изменить порядок сле дования тегов <IMG>. Если сначала написать теги для рисунков плашек с 11 по 15, затем – с 6 по 10 и в конце – с 1 по 5, то при наложении рисунков те, которые были объявлены позже, окажутся сверху. Кроме того, вполне можно разместить рисунки чуть выше по вертикали:
<
IMG
ID
=
"pl1"
SRC
=
"Images/digitll.gif"
WIDTH
=
"100"
HEIGHT
=
"100"
BORDER
=
"0"
ALT
=
"11"
STYLE
=
"position: absolute; top: 60px; left: 50px;"
>
<
IMG
ID
=
"pl2"
SRC
=
"Iniages/digitl2.gif"
WIDTH
=
"100"
HEIGHT
=
"100"
BORDER
=
"0"
ALT
=
"12"
STYLE
=
"position: absolute; top: 160px; left: 50px;"
>
<
IMG
ID
=
"pl3"
SRC
=
"Images/digitl3.gif"
WIDTH
=
"100"
HEIGHT
=
"100"
BORDER
=
"0"
ALT
=
"13"
STYLE
=
"position: absolute; top: 260px; left: 50px;"
>
<
IMG
ID
=
"pl4"
SRC
=
"Images/digitl,4.gif"
WIDTH
=
"100"
HEIGHT
=
"100"
BORDER
=
"0"
ALT
=
"14"
STYLE
=
"position: absolute; top: 360px; left: 50px;"
>
<
IMG
ID
=
"pl5"
SRC
=
"Images/digitl5.gif"
WIDTH
=
"100"
HEIGHT
=
"100"
BORDER
=
"0"
ALT
=
"15"
STYLE
=
"position: absolute; top: 460px; left: 50px;"
>
<
IMG
ID
=
"p6"
SRC
=
"Images/digit6.gif"
WIDTH
=
"100"
HEIGHT
=
"100"
BORDER
=
"0"
ALT
=
"6"
STYLE
=
"position: absolute; top: 60px; left: 30px;"
>
<
IMG
ID
=
"p7"
SRC
=
"Images/digit7.gif"
WIDTH
=
"100"
HEIGHT
=
"100"
BORDER
=
"0"
ALT
=
"7"
STYLE
=
"position: absolute; top: 160px; left: 30px;"
>
Результат показан на рис. 7.10. Теперь, наконец, подготовительная работа закончена, и нужно реализовать обработку событий, как говорилось выше.
Рис. 7.10. Изменение порядка следования позиционированных элементов <IMG> позволяет изменить их расположение в третьем измерении
Реакция на нажатие кнопки
Сначала добавим в тег <BODY> обработчики событий, реагирующие на нажатие кнопки мыши (не на щелчок, который состоит из нажатия и отпускания левой кнопки, а именно на нажатие) – onMouseDown, на отпускание кнопки – onMouseUp и на движение указателя мыши – onMouseMove:
<
BODY
onLoad
=
"mainpos()"
onMouseDown
=
"down_it()"
onMouseUp
=
"up_it()"
onMouseMove
=
"move_it()"
>
Теперь осталось написать функции, которые мы так лихо назначили обработчикам событий. Сначала давайте займемся нажатием кнопки мыши (onMouseDown).
Прежде всего, нам надо определить, была ли нажата кнопка мыши на рисунке одной из плашек. Если нет, то ничего делать не нужно. Как проверить это условие? В Internet Explorer 4+ источник каждого события записывается в свойство window.event.srcElement. Но что нам это дает? Ведь нужных нам рисунков целых 15, и у каждого есть свое уникальное имя (свойство ID=). Неужели придется сравнивать свойство window.event.srcElement id с каждым именем?