2.15. Гипертекстовые ссылки и картинки

Гипертекстовые ссылки и картинки - это свойства объекта "документ", который в свою очередь является частью объекта "окно". И гипертекстовые ссылки, и картинки составляют встроенные массивы, к которым можно обращаться по индексу. Рассмотрим несколько примеров программирования массивов гипертекстовых ссылок и картинок.

Просмотр фотографий образцов через список гипертекстовых ссылок

Вся страница размечается как таблица, состоящая из одной строки в две ячейки. В первой ячейке размещается список выбора альтернатив, во второй ячейке размещаются картинки, выбранные при помощи списка альтернатив. Все элементы списка помечены как гипертекстовые ссылки. У каждой ссылки определено событие onSelect. Для того, чтобы не происходил переход к другой странице, а выполнялась только обработка события, в поле href необходимо определить вызов JavaScript. Ниже приведен пример реализации такой компоновки и пример кода самой страницы.

Пример 2.21. Изменение картинки через гипертекстовую ссылку


	<HTML>

	<HEAD>

	<TITLE>HTTPD\HTDOCS\JAVASCR\EXAMPLE1</TITLE>

	<SCRIPT>

	<!-- Защитили текст скрипта от старых браузеров

	function l_image(a)

	         {

	          document.images[1].src=a 

	         }

	// -->

	</SCRIPT>

	</HEAD>

	<BODY TEXT="#000000" BGCOLOR="#FFFFCC" 

	LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">

	<H1>

	<FONT COLOR="#000099">Просмотр фотографий 

	образцов</FONT>

	</H1>

	<center>

	<TABLE COLS=2 WIDTH="100%" >

	<CAPTION>

	<FONT COLOR="#000099" SIZE=+2>

	Образцы бытовой техники</FONT>

	</CAPTION>

	<TR>

	<TD>

	<UL>

	<LI><A HREF="javascript:l_image('freeze.gif')"

>Холодильник</A> </LI>

	<LI><A HREF="javascript:l_image('dust.gif')"

>Пылесосы</LI>

	<LI><A HREF="javascript:l_image('toster.gif')"

>Тостер</LI>

	<LI><A HREF="javascript:l_image('cook.gif')"

	>Варочный стол</LI>

	<LI><A HREF="javascript:l_image('oven.gif')"

>Духовка</LI>

	<LI><A HREF="javascript:l_image('wash.gif')"

	>Стиральная машина</LI>

	<LI><A HREF="javascript:l_image('dishwash.gif')"

>Посудомоечная машина</LI>

	</UL>

	</TD>

	<TD ALIGN=CENTER VALIGN=CENTER><

	IMG SRC="dust.gif" NAME="tool" > </TD>

	</TR>

	</TABLE>

	</center>

	</BODY>

	</HTML>

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

Изменение картинки путем выбора предмета из списка.

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

Пример 2.22. Выбор картинки из списка


	<!-- элементы заголовка -->

	...

	<SCRIPT>

	<!-- Защитили текст скрипта от старых браузеров

	pictures = new Array()

	for(i=0;i<8;i++)

	   {

	    pictures[i] = new Image()

	    if(i==0) pictures[i].src = "freeze.gif"

	    if(i==1) pictures[i].src = "dust.gif"

	    if(i==2) pictures[i].src = "toster.gif"
	    if(i==3) pictures[i].src = "cook.gif"

	    if(i==4) pictures[i].src = "oven.gif"

	    if(i==5) pictures[i].src = "wash.gif"

	    if(i==6) pictures[i].src = "dishwash.gif"

	   }

	function l_image()

	   {

	    document.images[1].src = pictures

		[document.form1.item.selectedIndex].src

	   }

	// -->

	</SCRIPT>

	 

	                               [ На начало страницы ] 

	 

	Фрагмент HTML-разметки с вызовом функции 

	изменения картинки: 

	 

	<center>

	<TABLE COLS=2 WIDTH="100%" >

	<CAPTION>

	  <FONT COLOR="#000099" SIZE=+2>

	  Образцы бытовой техники</FONT>

	</CAPTION>

	  <TR>

	    <th>

	      <form name=form1>

	      <select name=item onChange=l_image()>

	        <option>Холодильник

	        <option selected>Пылесос

	        <option>Тостер

	        <option>Варочный стол

	        <option>Духовка

	        <option>Cтиральная машина

	        <option>Посудомоечная машина

	      </select>

	      </form>

	    </th>

	  </tr>

	  <tr>

	    <th ALIGN=CENTER VALIGN=CENTER><

		IMG SRC="dust.gif" NAME="tool" > </th>

	  </TR>

	</TABLE>

	[ <a href=#top>На начало страницы</a> ]

	<HR>

	</center>

В данном примере картинка выбирается как элемент списка. При этом происходит событие onChange, и по нему определяют, какой именно элемент был отобран.

Листание картинок и их автоматический просмотр

Вся страница размечается как таблица, состоящая из одного столбца в две ячейки. В первой ячейке размещаются три кнопки управления просмотром картинок "Вперед", "Старт/Стоп", "Назад". Во второй ячейке размещаются картинки, выбранные путем листания. Листание осуществляется кнопками "Вперед" и "Назад". Возможен и другой вариант выбора картинки, когда система сама через некоторый промежуток времени периодически меняет картинки. Для этого следует сначала запустить автоматическую смену картинок, нажав на кнопку "Старт/Стоп", а потом, когда будет показана нужная картинка, остановить автоматическое листание, снова нажав на кнопку "Старт/Стоп". Ниже приведен пример реализации такой компоновки и пример кода самой страницы.

Пример 2.23. Листание и прокрутка картинок


	<SCRIPT>

	<!-- Защитили текст скрипта от старых браузеров

	pictures = new Array()

	for(i=0;i<8;i++)

	   {

	    pictures[i] = new Image()

	    if(i==0) pictures[i].src = "freeze.gif"

	    if(i==1) pictures[i].src = "dust.gif"

	    if(i==2) pictures[i].src = "toster.gif"

	    if(i==3) pictures[i].src = "cook.gif"

	    if(i==4) pictures[i].src = "oven.gif"

	    if(i==5) pictures[i].src = "wash.gif"

	    if(i==6) pictures[i].src = "dishwash.gif"

	   }

	n=0;

	flag=0;

	function next_image()

	   {

	    if(flag==0)

	      {

	       n++;if(n>6) n=0;

	       document.images[1].src = pictures[n].src

	      }

	   }

	function back_image()

	   {

	    if(flag==0)

	      {

	       n--;if(n<0) n=6;

	       document.images[1].src = pictures[n].src

	      }

	   }

	function scroll_image()

	   {

	    if(flag==1)

	      {

	       n++;if(n>6) n=0;

	       document.images[1].src = pictures[n].src

	      }

	    setTimeout("scroll_image()",1500);

	   }

	function start_stop()

	   {

	    if(flag==0)

	      {

	       flag=1

	      }

	    else

	      {

	       flag=0

	      }

	   }

	// -->

	</SCRIPT>

	 

	                               [ На начало страницы ]

	 

	<TABLE COLS=2 WIDTH="100%" >

	<CAPTION>

	  <FONT COLOR="#000099" SIZE=+2>

	  Образцы бытовой техники</FONT>

	</CAPTION>

	  <TR>

	    <th>

	      <form name=form1>

	      <input name=f type=button 

		  value=Вперед onClick=next_image()>

	      <input name=ss type=button value="Старт/Стоп"

		 onClick=start_stop()>

	      <input name=b type=button 

		  value=Назад onClick=back_image()>

	      </form>

	    </th>

	  </tr>

	  <tr>

	  <th ALIGN=CENTER VALIGN=CENTER><

	  IMG SRC="dust.gif" NAME="tool" > </th>

	  </TR>

	</TABLE>

В этом примере мы используем те же средства, что использовали и для организации скроллинга. Алгоритм останова и запуска прокрутки тот же, что и при скроллинге окна.

Пример использования client-site imagemap

В данном примере мы хотим показать возможность изменения картинки imagemap с одновременным изменением гипертекстовых ссылок, связанных с этой картинкой. Такая возможность существует только в том случае, если все картинки, которые мы хотим использовать в качестве imagemap, имеют одинаковую компоновку. Мы реализуем просмотр вариантов в виде горизонтального меню в верхней строке таблицы и imagemap - в нижней строке таблицы, т.к. наша картинка имеет формат ландшафта.

Пример 2.24. Динамический imagemap


	<SCRIPT>

	<!-- Защитили текст скрипта от старых браузеров

	function print_form(a)

	         {

	          document.form1.kuku.value = a

	         }

	function set_image(a)

	         {

	          if(a == "bosh")

	            {

	             document.form1.kuku.value= 

				 "Техника фирмы Bosh."

	             document.links[5].href =

				  "javascript:print_form

				  (\'Refregarator: Bosh-10245

				  (-24C;Remote Control)\')"

	             document.links[6].href =

				  "javascript:print_form

				  (\'Aero-Filter: Bosh-1212(

				  Steel Filter)\')"

	             document.links[7].href = 

				 "javascript:print_form

				 (\'Oven: Bosh-3432

				 (Варочный стол + духовка)\')"

	             document.links[8].href = 

				 "javascript:print_form

				 (\'Wash mashine:

				  Bosh-2343(Dry Mode)\')"

	             document.links[9].href = 

				 "javascript:print_form

				 (\'Dish wash machine: Bosh-DW-44\')" 

	             document.links[10].href = 

				 "javascript:print_form

				 (\'Water pipe: Bosh

				 (Steel + Ceramic)\')"

	            }

	          if(a == "Indesit")

	            {

	             document.form1.kuku.value= 

				 "Техника фирмы Indesit."

	             document.links[5].href = 

				 "javascript:print_form

(\'Indesit-105(-18C)\')"

	             document.links[6].href = 

				 "javascript:print_form

(\'Indesit-101(Steel Filter)\')"

	             document.links[7].href = 

				 "javascript:print_form

(\'Indesit-3432(Варочный стол + духовка)\')"

	             document.links[8].href = 

				 "javascript:print_form

(\'Indesit-343(Wash only)\')"

	             document.links[9].href = 

				 "javascript:print_form

(\'Indesit-DWR-Safe\')" 

	             document.links[10].href = 

				 "javascript:print_form

				 (\'No in the frame\')"

	            }

	          if(a == "candy")

	            {

	             document.form1.kuku.value= 

				 "Техника фирмы Candy."

	             document.links[5].href = 

				 "javascript:print_form

(\'Candy-122(-24C;Hidden model)\')"

	             document.links[6].href = 

				 "javascript:print_form

(\'Candy-12(Steel Filter + Carbone Filter)\')"

	             document.links[7].href = 

				 "javascript:print_form

(\'Candy(Варочный стол + духовка)\')"

	             document.links[8].href = 

				 "javascript:print_form

				 (\'Candy-343(Dry Mode)\')"

	             document.links[9].href = 

				 "javascript:print_form

(\'Candy-DWR Elite\')" 

	             document.links[10].href 

				 = "javascript:print_form

(\'Candy(Ceramic)\')"

	            }

	          document.images[1].src= a+".gif"

	         }

	// -->

	</SCRIPT>

	 

	                               [ На начало страницы ]

	 

	<MAP name=kitchen_map>

	  <area name=freeze shape=rect coords="14,11,88,171" 

	  href="javascript:void(0)">

	  <area name=aero shape=rect coords="179,12,238,58" 

	  href="javascript:void(0)"> 

	  <area name=oven shape=rect coords="179,95,237,172" 

	  href="javascript:void(0)">

	  <area name=dry shape=rect coords="239,95,297,173" 

	  href="javascript:void(0)">

	  <area name=wash shape=rect coords="297,96,370,173"

	   href="javascript:void(0)">

	  <area name=kran shape=rect coords="90,95,138,172" 

	  href="javascript:void(0)">

	</map>

	<TABLE border=0>

	<CAPTION>

	  <FONT COLOR="#000099" SIZE=+2>Образцы

	  бытовой техники</FONT>

	</CAPTION>

	  <TR>

	    <TH>

	    <a href="javascript:set_image('bosh')"

		>Bosh</a>

	    </th>

	    <th>

	    <a href="javascript:set_image('idezit')"

		>Indesit</a>

	    </th>

	    <th>

	    <a href="javascript:set_image('candy')"

		>Candy</a>

	    </th>

	  </TR>

	  <TR> 

	    <th colspan=3><IMG SRC="Bosh.gif" 

		NAME="tool" USEMAP=#kitchen_map></th>

	  </TR>

	  <tr><th colspan=3><form 

	  name=form1><input name=kuku size=40 

	  value=Выбери набор техники.></form>

	  </th></tr>

	</TABLE>

В данном примере меняются не только картинки, но и стеки гипертекстовых ссылок под ними. Для каждой новой картинки определяются свои собственные гипертекстовые ссылки.

Назад | Содержание

Используются технологии uCoz