Регистрация
Вход через соцсети
Восстановление пароля

кэширование картинок меню

Новый топик
Страницы: 1  |  2
08.11.2007, 15:41
Ответить | Цитировать
bobmp
Бобылев Максим Петрович

Зарегистрирован:
2006-01-26
Сообщений: 49

не нашел на форуме. неужели ни у кого не возникала такая ситуация - когда меню делалось с помощью картинок меняющихся по onMouseOver (я имеею ввиду стандартный функционал "активный и неактивный элемент меню %img и %Pic) и нужно эти картинки при загрузке страницы закэшировать (чтобы не прыгали при наведении мыши)?
может кто делал и расскажет способ?
09.11.2007, 07:11
Ответить | Цитировать
resident
Веб-группа «Дабл Ю»

Зарегистрирован:
2005-01-10
Сообщений: 336

чес слово к неткату это не относится
09.11.2007, 09:18
Ответить | Цитировать
Гость
Гость

JavaScript и DHTML forever
14.11.2007, 11:04
Ответить | Цитировать
Гость
Гость

Да что вы говорите улыбка
может я не совсем внятно написал, но меня интересует не JS и DHTML код, а как закэшировать именно картинки из которых строится меню с помощью %Pic и %img.
Т.е. если имеем JS ф-цию CacheImages(IMAGE), то что у нее будет в параметрах?
В html я бы через запятую перечислил бы нужные картинки, а как это сделат в NC. У меня есть мысля - обращаться напрямую к базе, но мне она кажется не достаточно "изящной" - IMHO есть более красивый способ.
14.11.2007, 19:10
Ответить | Цитировать
h/z

Зарегистрирован:
2007-02-06
Сообщений: 755

приведите здесь код который вы хотите использовать, и я вам подскажу как с помощью НетКет заполнить все необходимые JS массивы
14.11.2007, 23:46
Ответить | Цитировать
bobmp
Бобылев Максим Петрович

Зарегистрирован:
2006-01-26
Сообщений: 49

вот к примеру код от DW. Вместо menu_image1 и тд нужно подставить имена файлов картинок.
Этого можно достичь обратившись к таблице в которой описаны разделы, выдернуть оттуда ссылку на записи в таблице Files и уже оттуда взять имена файлов. Но IMHO есть способ проще.

<script language="JavaScript1.2" type="text/javascript">
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}}
}
</script>

<body onLoad="MM_preloadImages('menu_image1','menu_image2')">
15.11.2007, 10:52
Ответить | Цитировать
h/z

Зарегистрирован:
2007-02-06
Сообщений: 755

Код:

$template_menu_preloadimg[0][prefix] = "";
$template_menu_preloadimg[0][suffix] = "";
$template_menu_preloadimg[0][active] = "'$data[$i][img]'";
$template_menu_preloadimg[0][active_link] = "'$data[$i][img]'";
$template_menu_preloadimg[0][unactive] = "'$data[$i][img]'";
$template_menu_preloadimg[0][divider] = ",";

$template_menu_preloadimg[1][prefix] = "";
$template_menu_preloadimg[1][suffix] = "";
$template_menu_preloadimg[1][active] = "'$data[$i][Pic]'";
$template_menu_preloadimg[1][active_link] = "'$data[$i][Pic]'";
$template_menu_preloadimg[1][unactive] = "'$data[$i][Pic]'";
$template_menu_preloadimg[1][divider] = ",";


<body onLoad="MM_preloadImages(".s_browse_sub(sub,$template_menu_preloadimg[0]).",".s_browse_sub(sub,$template_menu_preloadimg[1]).")">
18.11.2007, 21:26
Ответить | Цитировать
Гость
Гость

Фэнкс, именно про это я и говорил!
23.11.2007, 13:42
Ответить | Цитировать
bobmp
Бобылев Максим Петрович

Зарегистрирован:
2006-01-26
Сообщений: 49

не работает грустный

вот что выдает:
<body onLoad="MM_preloadImages('[img]','[Pic]')">

т.е. перечисления использованных картинок так и нету грустный
23.11.2007, 15:27
Ответить | Цитировать
h/z

Зарегистрирован:
2007-02-06
Сообщений: 755

напрягаем мозг

например:
$template_menu_preloadimg[0][active] = "'".${data[$i][img]}."'";

проверьте что такие поля в таблице Subdivision действительно сущестуют
26.11.2007, 13:53
Ответить | Цитировать
bobmp
Бобылев Максим Петрович

Зарегистрирован:
2006-01-26
Сообщений: 49

мозг напряг. все делается по другому:

$browse_sub[8][prefix] = "";global $browse_sub; $result.="";
$browse_sub[8][suffix] = "";
$browse_sub[8][active] = "\"%Pic\"";
$browse_sub[8][active_link] = "\"%Pic\"";
$browse_sub[8][unactive] = "\"%Pic\"";
$browse_sub[8][divider] = ",";

и в коде:
<body onLoad="MM_preloadImages(".s_browse_level(0,$browse_sub[8]).")">
198 196 2007-11-26 14:19:49 9141
Страницы: 1  |  2
Описание проекта