Динамическое изменение графических элементов веб-страницы
Предварительная загрузка графических объектов
Однако это еще не все. Представьте себе, что пользователь навел мышь на кнопку-гиперссылку. Что должно произойти? Естественно, замена рисунка. Но откуда браузер возьмет новый рисунок? Начнет загружать через Интернет, поскольку до этого новый рисунок не был загружен в память. В результате на некоторое время отобразится пустой прямоугольник, и весь эффект пропадет!
Чтобы этого избежать, придется написать код для предварительной загрузки в память всех картинок. Это можно сделать при помощи объявления объектов типа Image:
var img1 = new Image(); img1.src = 'Images/ALTavista.jpg'; var img2 = new Image(); img2.src = 'Images/ALTavista2 .jpg;…и так далее. Теперь все графические объекты будут загружены в память заранее, и при наведении мыши на кнопку-гиперссылку смена рисунка произойдет практически мгновенно, что и даст требуемый эффект.
Посмотрим, что у нас получилось в целом.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE>Страница гиперссылок</TITLE> <STYLE TYPE="text/css"> BODY { text-align: center - background: url("Images/back?.jpg"); } H1 { border-color: #0063CE; border-style: groove; border-width: thick; padding: 5px; background-color: #ACEDFF; width: 16em; } SPAN { border-color: #FF63CE; border-style: ridge; border-width: medium; padding: 5px; padding: 5px; background-color: #FCEDFF; width: 60%; font-size: 20px; } IMG { margin: 7px; } --> </STYLE> <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> //<!-- var img1 = new Image() img1.src = 'Images/ALTavista.jpg'; var img2 = new Image() img2.src = 'Images/ALTavista2.jpg'; var img3 = new Image() img3.src = 'Images/yahoo.jpg'; var img4 = new Image() img4.src = 'Images/yahoo2.jpg'; var img5 = new Image() img5.src = 'Images/yandex.jpg'; var img6 = new Image() img6.src = 'Images/yandex2.jpg'; var img7 = new Image() img7.src = 'Images/aport.jpg'; var img8 = new Image() img8.src = 'Images/aport2.jpg'; function change1() { var a = window.event.srcElement; if (a.tagName == "IMG") a.src = a.src.substring(0, a.sre.length - 4) + "2" + a.src.substring(a.sre.length - 4, a.src.length); } function change2() { var a = window.event.srcElement; if (a.tagName == "IMG") a.src = a.src.substring(0, a.src.length - 5) + a.src.substring(a.src.length - 4, a.src.length); } document.onmouseover = changel; document.onmouseout = change2; //--> </SCRIPT></HEAD> <BODY> <H1>ПОИСКОВЫЕ МАШИНЫ</H1> <SPAN>Если вы ищете в Интернете какую-либо информацию, вам помогут следующие сайты:<SPAN> <BR> <BR> <A HREF="http://www.ALTavista.corn" TARGET="_blank"> <IMG SRC="Images/ALTavista.jpg" WIDTH="192" HEIGHT="40" BORDER="0" ALT="ALTavista"> </A> <BR> <A HREF="http://www.yahoo.corn" TARGET="_blank"> <IMG SRC="Images/yahoo.jpg" WIDTH="147" HEIGHT="40" BORDER="0" ALT="Yahoo! "> </A> <BR> <A HREF="http://www.aport.ru" TARGET="_blank"> <IMG SRC="Images/aport.jpg" WIDTH="135" HEIGHT="40" BORDER="0" ALT="АпорТ"> </A> <BR> <A HREF="http://www.yandex.ru" TARGET="_blank"> <IMG SRC="Images/yandex.jpg" WIDTH="129" HEIGHT="40" BORDER="0" ALT="Яndex"> </A></BODY> </HTML>Можно, разумеется, придумать и другие средства взаимодействия с графическими элементами. В главе 6, например, мы создали картинку с динамически изменяющимся размером. В разделе 7.2 мы передвигали картинки с помощью мыши. Вы можете также попробовать передвигать картинки без участия пользователя (что создаст эффект анимации) или изменят). их стилевое свойство filter.
