Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Предзагрузка изображений
 
 автор: Катёнок   (26.02.2006 в 07:13)   письмо автору
 
 

Привет ребята, только-только я выучила html и начала делать свой первый сайт, как тут же, столкнулась с проблемой ( . У меня есть скрипт

<script type="text/javascript">
    function Filmstrip(){
        this.ePicture = document.getElementById('fsScreen');
        this.ePrev = document.getElementById('fsControl_prev');
        this.eNext = document.getElementById('fsControl_next');
        var eLinks = document.getElementById('fsLinks');
        this.aeLink = eLinks.getElementsByTagName('A');
        this.show_picture = function( sBackground, iWidth, iHeight ){
            this.ePicture.style.backgroundImage = "url(" + sBackground + ")";
            if( iWidth )
                this.ePicture.style.width = iWidth;
            if( iHeight )
                this.ePicture.style.height = iHeight;
            this.set_current( sBackground );
        }
        this.set_current = function( sHref ){
            for( var i = 0 ; i < this.aeLink.length ; i++ ){
                if( this.aeLink[i].href.match( new RegExp( sHref + "$" ) ) ){
                    this.aeLink[i].className += " current";
                    this.ePrev.className = this.ePrev.className.replace( /\s+disabled/g, "" );
                    this.eNext.className = this.eNext.className.replace( /\s+disabled/g, "" );
                    if( i == 0 ){
                        this.ePrev.className += " disabled";
                        this.ePrev.onclick = function(){};
                        this.eNext.onclick = this.aeLink[i + 1].onclick;
                    }else if( i == this.aeLink.length - 1 ){
                        this.eNext.className += " disabled";
                        this.eNext.onclick = function(){};
                        this.ePrev.onclick = this.aeLink[i - 1].onclick;
                    }else{
                        this.eNext.onclick = this.aeLink[i + 1].onclick;
                        this.ePrev.onclick = this.aeLink[i - 1].onclick;
                    }
                }else{
                    this.aeLink[i].className = this.aeLink[i].className.replace( /\s*current/g, "" );
                }
            }
        }
    }
    var oFilmstrip = new Filmstrip();
    function Show_picture( sHref, iWidth, iHeight ){
        oFilmstrip.show_picture( sHref, iWidth, iHeight );
        return false;
    }
    oFilmstrip.aeLink[0].onclick();
</script>

Как мне к нему сделать, предзагрузку картинок?

Подскажите пожалуйста, очень-очень надо : )

На всякий пожарный, прикрепляю всю страничку.

   
 
 автор: Катёнок   (26.02.2006 в 08:55)   письмо автору
 
   для: Катёнок   (26.02.2006 в 07:13)
 

Кстати, а как сделать так, чтобы в одном и том же месте экрана (в div'e) при выборе рзных картинок (с помощью этого скрипта) отображалось их (картинок) название.
Ну добустим вбрала я vova.jpg а в div'е написано -- Вова.
Выбираю masha.gif а написано -- Маша!

   
 
 автор: codexomega   (26.02.2006 в 17:07)   письмо автору
 
   для: Катёнок   (26.02.2006 в 08:55)
 

Вт скрипт посложнее не могли найти?

   
 
 автор: Катёнок   (27.02.2006 в 03:52)   письмо автору
 
   для: codexomega   (26.02.2006 в 17:07)
 

Зато в этом скрипте, картинки меняются а страница не перезагружается.
( но вот только прилоад никак не сделать :( )
Вы codexomega знаете более простой скрипт?

   
 
 автор: codexomega   (27.02.2006 в 04:21)   письмо автору
 
   для: Катёнок   (27.02.2006 в 03:52)
 

Посмотрите это к примеру:
http://javascript.internet.com/miscellaneous/image-viewer.html
Там тоже смена картинки без перезагрузки страницы.

Вот пример предзагрузки:
http://www.web-wise-wizard.com/web-graphics-design/javascript-preload-preloading-images.html

   
 
 автор: 12345   (27.02.2006 в 04:56)   письмо автору
 
   для: Катёнок   (27.02.2006 в 03:52)
 

Вот и я думал, где здесь прелоад? Так задача в том, чтобы его сделать? Для этого, да, нужно сначала выбросить весь прежний скрипт, очистить сознание. :) Вот скрипт с подгрузкой, но без прелоада:
<B>Подгрузка изображений по выбору</B><br><br>
<a href=# onclick=loadPict(0);return!1>1</a><br>
<a href=# onclick=loadPict(1);return!1>2</a><br>
<a href=# onclick=loadPict(2);return!1>3</a><br>
<a href=# onclick=loadPict(3);return!1>4</a><br><br>
<img id=i1 src=""><br>
<div id=d1></div>
<SCRIPT>d=document;
aimg='snow.gif,snow21.gif,fo167-YM20030829-1.jpg,Imaf4-YM20041031.jpg'.split(',');
adiv='снег;снег21;лето;осень'.split(';');
loadPict=function(i){d.all.i1.src=aimg[i];d.all.i1.title=d.all.d1.innerHTML=adiv[i];}
</SCRIPT>
Эффект смотрите здесь: http://javascript.aho.ru/example/JsPrimeryCode-67.htm. Как видите, хватает одной строчки функции.

Теперь, если надо предзагрузку, то добавляете код, что есть во всех учебниках:

preloadPict=function(i){aim=[];for(i=0;i<aimg.length;i++){aim[i]=new Image();aim[i].src=aimg[i];}}

И можно смотреть:

<SCRIPT>
viewPict=function(i){if(!self.aim)preloadPict();if(!self.aim||!self.aim[aimg.length-1])return;
    d.all.i1.src=aim[i].src;d.all.i1.title=d.all.d1.innerHTML=adiv[i];}
</SCRIPT><br><br>
<span onclick=preloadPict() style=cursor:hand;>Сделать предзагрузку</span><br><br>
Смотреть предзагруженные (только после предзагрузки):<br>
<a href=# onclick=viewPict(0);return!1>1</a><br>
<a href=# onclick=viewPict(1);return!1>2</a><br>
<a href=# onclick=viewPict(2);return!1>3</a><br>
<a href=# onclick=viewPict(3);return!1>4</a><br><br>
Здесь, если забыли предзагрузить, сначала делаем предзагрузку и видим, насколько это долго, если картинки большие.
Пришлось сделать 2 строчки скрипта, но ведь не 22 ? (Демо на той же ссылке.)
(В коде демо добавил ещё 1 строчку, показывающую прогресс предзагрузки появлением подписей на месте ссылок. Но это детали. Главное, что preloadPict нкужно поставить в тег <body onload=...> и цель будет достигнута. Здесь же я показал процесс по частям, чтобы понятно было, из чего он состоит.)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования