IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Preload картинок (https://www.imho.ws/showthread.php?t=59895)

DeMx 26.05.2004 17:49

Preload картинок
 
Народ, объясните начинающему, как сделать preload картинок, а то OnMouseOver фигово работает - мыш наводишь на кнопку, а она только через несколько секунд загорается. :) Не у всех же ADSL.
Только, пожалуйста, выложите какой-нить маленький конкретный пример, чтобы понятно было. Век буду благодарен.

Hubbitus 26.05.2004 20:52

Вложений: 1
Вот тебе очень простой пример тут накатал, надеюсь что все понятно будет....
Если нет, можешь ко мне на аську стучаться - все объясню. :p

DeMx 26.05.2004 22:37

Вложений: 1
У меня меню несколько сложней будет. :) Я там никак не могу понять чё и куда пихать. :confused:
Короче говоря так, я приаттачил сюда исходник моего меню. А вы, народ, подскажите, чё в нём изменить надо, чтобы картинки заранее загружались. Ну или измените и бросьте тоже на форум.
Много я прошу, вы уж извиняйте меня, не опытного перца. :молись: :help:

Hubbitus 27.05.2004 12:10

Ничуть оно не сложнее... естественно я тебе только пример привел, а кода должно быть гораздо больше в реальном меню....

Если честно, то мне лень писать кому-то что-то бесплатно, я итак тебе пример набросал..... Если надо, можем поговорить об этом - моя ася 345211...

Ну а если просишь, то хотябы все картинки, упоминающиеся в коде тоже прилепил бы...

Goryn 27.05.2004 12:24

Посмотрел я код. Я когда-то делал такие вещи, но подругому. Поэтому приведу образец для примера (скрипты целиком):

Код HTML:

<HTML><HEAD><TITLE>Заголовок</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function newImage(arg) {
        if (document.images) {
                rslt = new Image();
                rslt.src = arg;
                return rslt;
        }
}
function changeImages() {
        if (document.images && (preloadFlag == true)) {
                for (var i=0; i<changeImages.arguments.length; i+=2) {
                        document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
                }
        }
}
var preloadFlag = false;
function preloadImages() {
        if (document.images) {
                menu_01_over = newImage("images/menu_01-over.gif");

...

                menu_nn_over = newImage("images/menu_nn-over.gif");
                preloadFlag = true;
        }
}

// -->

</SCRIPT>
</HEAD>
<BODY ONLOAD="preloadImages();" ...>

...

<A HREF="about.htm" ONMOUSEOVER="changeImages('menu_01', 'images/menu_01-over.gif'); return true;" ONMOUSEOUT="changeImages('menu_01', 'images/menu_01.gif'); return true;"><IMG NAME="menu_01" SRC="images/menu_01.gif" WIDTH=213 HEIGHT=24 BORDER=0 alt="О компании"></A><br>

....

</BODY>
</HTML>

Картинки images/menu_01.gif - изначально, images/menu_01-over.gif - при наведении мыши.

И еще совет: помести весь CSS в отдельный файл и линкуй его в шапке страниц:

Код HTML:

<LINK href="all.css" rel="stylesheet" type="text/css">

Hubbitus 27.05.2004 12:41

Цитата:

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

Goryn 27.05.2004 12:45

Цитата:

Сообщение от Hubbitus
что в твоем от моего принципиально отличается? Помоему все тоже самое....
(Никого не хочу обидеть...)

названия функций :ржать:

А вообще ты про прелоад спрашивал. Мой вариант это делает. А насколько он отличный... решай сам.

Hubbitus 27.05.2004 12:53

:ржать: :ржать: :ржать:
Цитата:

Goryn:
А вообще ты про прелоад спрашивал. Мой вариант это делает. А насколько он отличный... решай сам.
Это не я спрашивал :)
Мой вариант это тоже делает :)

И вообще я сам виноват наверное, но мы пошли флеймить......

hempsmoke 06.06.2004 22:32

я что-то туплю.. у меня не получается сделать прелоад одной картинки!
не подскажите?
img = newImage("pict.gif");

Hubbitus 07.06.2004 02:35

Подскажем, конечно!... только что? вопрос-то в чем? :)
Или ошибка какая, или не понятно что-то?

hempsmoke 07.06.2004 12:45

код правильный? он что -то не пашет...
использую вместе с <img src='" onmouseover='this.src=img.src;'>

Hubbitus 07.06.2004 16:14

Цитата:

hempsmoke:
код правильный? он что -то не пашет...
Это в зависимости что под той функцией (newImage) подразумевается...

Если использовать мой вариант (что приведен здесь выше), то не првильно, для смены картинки должна использоваться функция, приблизительно так:
Код:

img_over=newIm("img_over.gif");
<img src="pict_1.gif" onmouseover="imag('picture_name', img_over)" name="picture_name">

Соответственно newIm - функция из приведенных мною исходников.
Приведенный код естественно не должен работать напрямую (там даже не отделен JavaScrip от HTML), но принцип, я думаю, ясен...
Если надо - стучись на аську, помогу.

hempsmoke 07.06.2004 21:11

Цитата:

hempsmoke:
не получается сделать прелоад одной картинки!
именно одной ... с функциями, то я делаю без проблем... тут на днях понадобилось сделать одну, а забыл как... :) так код выше верен?
<img src='" onmouseover='this.src=img.src;'>

Hubbitus 07.06.2004 22:45

Поидее код верен...
А в чем проблема?

hempsmoke 07.06.2004 23:35

не знаю.. в том - то и дело... :)

а если я их уже однажды подгрузил, то даже если обращаться к изобр, не как img.src, а просто названием файла, то она все равно уже подгруженной будет считаться?

просто неохота код пириписывать :)

Hubbitus 07.06.2004 23:46

Цитата:

hempsmoke:
не знаю.. в том - то и дело...
Тоесть? Ну что-то же тебе не нравится, иначе бы не спрашивал... что?

Цитата:

hempsmoke:
а если я их уже однажды подгрузил, то даже если обращаться к изобр, не как img.src, а просто названием файла, то она все равно уже подгруженной будет считаться?
Что значит обращаться? Если я тебя правильно понял, ты спрашиваешь можно ли все оставить как было вообще до написания прелоада, и встатить только "img = newImage("pict.gif");", тогда ответ - "нет".
Если не правльно тебя понял, то объясни что имеешь ввиду.
Цитата:

hempsmoke:
просто неохота код пириписывать
Ты же подчеркнул что прелоад одной картинки, дак что там переписывать?

hempsmoke 08.06.2004 00:21

Цитата:

Hubbitus:
Что значит обращаться? Если я тебя правильно понял, ты спрашиваешь можно ли все оставить как было вообще до написания прелоада, и встатить только "img = newImage("pict.gif");", тогда ответ - "нет".
именно это я имел ввиду :( плохо...

у меня (вернее не у меня ;) ) много раз прописана одна картинка... вот я и хотел ее подгрузить сразу и все. а так теперь везде придется вместо вызова полного пути к файлу с картинокй писать img.src

Hubbitus 08.06.2004 00:36

Дак картинки же кешируются!!!
Если она уже загружалась, то браузер ее в 98% возьмет из кеша, какой смысл еще мудрить что-то?

hempsmoke 08.06.2004 01:21

я это и имел ввиду... ;) все - спасибо.

BRULIK 19.05.2005 14:05

Поддержу тему прелоада.

Может кто подскажет как cделать преЛоад медиа файлов ... например .wav файлов.
Т.е. чтоб сперва загрузился , а потом начал авто-проигрываться.

Raman 20.05.2005 00:25

Кстати, зачем придумывать велосипед, если есть корректно работающий код preload'а картинок из DreamWeaver?.. Во всез браузерах работает в отличие от других... Только ссылку на пример не дам, т.к. под рукой нет. Но можно "прогуглить"...

deserg 21.05.2005 00:29

а зачем вообще использвовать прелоадер на JavaScript?
я тут обнаружил и с успехом применяю простую вещь. Делаешь где-нибудь в начале кода запись типа
<img src="image.jpg" style="display: none;">
и все прекрасно грузится... и даже лучше чем на яваскрипт, из-за которого бывают задержки с загрузкой страницы...

BRULIK 22.05.2005 20:21

Цитата:

Может кто подскажет как cделать преЛоад медиа файлов ... например .wav файлов.
Т.е. чтоб сперва загрузился , а потом начал авто-проигрываться.
Так всётаки , кто нить знает как енто зделать ?

Hubbitus 23.05.2005 01:47

Цитата:

BRULIK:
Так всётаки , кто нить знает как енто зделать ?
Гугл все знает :p :
http://72.14.207.104/search?q=cache:...vaScript&hl=ru
http://web.archive.org/web/200310080...din/din1.shtml

BRULIK 23.05.2005 09:41

Hubbitus
По гуглю я уже давно накопал , тока все никак не работает так как хочется.
Цитата:

Звук, конечно, не больше 10-15 К.
А если файл 2М ? Browserы разные ... рабочий пример есть у кого ?


Часовой пояс GMT +4, время: 05:58.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.