Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Spec_Mov_3k_4k_Lect.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.46 Mб
Скачать

Управление слоями

Слой является контейнером на web-странице, который может содержать любые html-элементы. В соединении со скриптами и CSS слои существенно добавляют динамики web-странице. В большинстве случаев слои моделируются на web-страницах контейнером div.

Пример

<div id="Layer1" style="position:absolute; visibility:inherit; width:200px; height:115px; z-index:1">

</div>

Слои могут располагаться один над другим. Взаимное расположение слоев может регулироваться свойством z-index, связанном с понятием 2,5-мерного пространства (имеется в виду физическое расположение на плоскости, но с учетом возможности наложения элементов друг на друга).

Слои могут вкладываться друг в друга. В слои можно вложить графику, текст и другие html-элементы.

Пример

<div id="Parent" style="position:absolute; left:56px; top:54px; width:124px; height:158px; z-index:1;">

Content inside the parent layer.

<div id="Nested" style="position:absolute; left:97px; top:114px; width:54px; height:69px; z-index:1;">

Content inside the nested layer.

</div>

</div>

Взаимно расположив слои один над другим и управляя из скрипта их видимостью можно, с одной стороны, выполнить разработку очень динамичной страницы и, с другой стороны, включить в страницу все необходимое, не требующее повторных (дополнительных) обращений к серверу.

Пример

В данном примере на web-странице располагается слой, включающий список читаемых на кафедре ПМА некоторых курсов дисциплин. При перемещении курсора «мышки» над элементами списка, управление передается скрипту, который заменяет «пустой» слой, размещающийся справа от списка, слоем, включающим текстовую информацию.

……………………………..

<head>

<title> Some Personel Page </title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<link rel="stylesheet", type="text/css" href="style1.css">

<script language="JavaScript">

<!--

function onover(x)

{ bName=navigator.appName;

bVer=parseInt(navigator.appVersion);

if(bName=="Microsoft Internet Explorer"&&bVer>=4){

obj=document.all["osob"];

str="";

if(x==1)

{str+="Дисциплина 'Языки программирования' …………….";

};

if(x==2)

{str+="Дисциплина 'Специальные языки программирования' ………………….";

};

if(x==3)

{str+="Дисциплина 'Системы программирования' …………………………….";

};

str="<div id='osob' style='border:1px #3300FF solid' >"+ str;

str=str+"</div>";

obj.outerHTML=str;}

}

function onout()

{ bName=navigator.appName;

bVer=parseInt(navigator.appVersion);

if(bName=="Microsoft Internet Explorer"&&bVer>=4){

obj=document.all["osob"];

obj.outerHTML="<div id='osob'></div>";

}}

//-->

</script>

</head>

<body text="#000000" link="#0000FF" background="fon2-1.jpg">

………………………………….

<p class="zagl">Читаемые курсы</p>

<div id="osob"> </div>

<div>

<ul>

<li onmouseover="onover(1)" onmouseout="onout()" id="one"> "Языки программирования"</li>

<li onmouseover="onover(2)" onmouseout="onout()" id="two">"Специальные

языки программирования"</li>

<li onmouseover="onover(3)" onmouseout="onout()" id="three">"Системы

программирования " </li>

</ul>

</div>

…………………………………..

</body>

</html>

В файле, содержащем информацию о применяемых стилях, для слоя имеются следующие строки:

div#osob { position: absolute; height: 140px; width: 500px; left: 440px; top: 540px; clip: rect( ); font-family: "Times New Roman", Times, serif; font-size: 16px; font-style: normal; color: #330000; font-weight: normal; text-align: justify; border: none}

В данном примере для динамического формирования содержимого слоя было использовано его (и многих других элементов блочного типа) свойство outerHTML, которое позволяет удалить сами тэги <div>…..</div> и все, что содержится внутри них, и заменить их тем, что содержится в строке, справа от символа присваивания. Свойство innerHTML позволяет заменить для префиксуемго элемента только то, что содержится внутри контейнера, не удаляя окружающие тэги.

Реализацию задачи, представленной в примере можно было бы выполнить, также, следующим образом. Разместить слои (div) статически один над другим с различной текстовой информацией внутри. Каждому слою присвоить индивидуальные имена (установив различные значения атрибутам id). В таблице стилей установить для них свойство видимости – «visibility: hidden». Пусть id для некоторого слоя имеет значение “layer1”, тогда его «включение» или «выключение» можно выполнить следующими операторами, соответственно: document.all["layer1"].style.visibility=’visible’;

document.all["layer1"].style.visibility=’hidden’; .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]