Показано с 1 по 15 из 15

Тема: Кнопки подгружаются после наведения мыши

  1. #1

    Регистрация
    03.09.2005
    Адрес
    Н. Новгород
    Сообщений
    1,255
    Добрый день.

    Подскажите пожалуйста, в моем сайтекнопки сделаны следующим образом:

    <a href="about.html"
    onmouseover="document.about.src=&#39;about_on.gif& #39;;"
    onmouseout="document.about.src=&#39;about.gif&#39; ;">
    [img]about.gif[/img]</a>
    То есть сначала кнопка - одно изображение, при подведениии мыша - другое

    Так вот, при загрузке страницы грузится сначала только первая картинка (about.gif), а вторая картинка (abouit_on.gif) подгружается только после наведении мыша на ссылку, даже если основная страница уже загрузилась.

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

  2. #2

    Регистрация
    29.01.2005
    Адрес
    Одесса
    Сообщений
    1,020
    нужно сделать "прелоадер" на JavaScript
    смысл - создается массив картинок, которые грузятся в независимости от того, отображаются они или нет. картинки должны быть одного размера.
    Код:
    var pic=new Array("about_on.gif", "остальные картинки, которые учавствую в ролловере")
    var ima=new Array();
    ****for(var i=0;i<pic.length;i++)
    ****{
     *ima[i]=new Image(размер в пикселах, через запятую);
     *ima[i].src=pic[i];
    ****}
    а на mouseover вызываешь src, но уже из этого массива по номеру... пример:
    Код:
    <a href="about.html" 
    onmouseover="document.about.src=ima[0].src;" 
    onmouseout="document.about.src=&#39;about.gif&#39;;">
    т.е. ima[0].src - это первая картинка в массиве, а именно - about_on.gif

  3. #3

    Регистрация
    03.09.2005
    Адрес
    Н. Новгород
    Сообщений
    1,255
    Спасибо, live
    Но картинки все одной ширины, но разной длины
    Для каждой сделать массив получится?

  4. #4

    Регистрация
    29.01.2005
    Адрес
    Одесса
    Сообщений
    1,020
    ну получается, что так... это у тебя в массиве получится по 1 картинке?
    смысл вообще в чем - загнать картинку в кэш, чтобы они не подгружалась.
    в твоем случае картинок не много, да? 4-5 штук? а если их подгрузить в начале страницы, но в невидимый слой, тогда они будут в кэше браузера, но не видны... попробуй в общем : ) если не заработает, то сделай для каждой картинки массив... массивы точно под ИЕ и Лисой работают.

  5. #5

    Регистрация
    03.09.2005
    Адрес
    Н. Новгород
    Сообщений
    1,255
    В продолжении темы: если перейти по ссылке через такую кнопку, а потом нажать НАЗАД в браузере, тоо страница загружается обратно с уже активированной кнопкой, через которую перешел
    то есть если в предыдущем примере я перешел через кнопку about.gif на страницу about.html, то, нажав НАЗАД, на странице отображается about_on.gif и не реагирует на мышку, хотя остальные кнопки на странице работают как надо
    Может знаете, что за глюк
    Насчет массивов поробую, что получится, расскажу
    А под Оперу такие вещи работают?

  6. #6

    Регистрация
    09.02.2004
    Адрес
    Литва/Вильнюс
    Сообщений
    359
    Ууу.... как всё запущеннооо...

    А я делаю так:

    Код:
    <a class="knopka">button</a>
    
    ================================
    
    ****.knopka {
     *display: block;
     *text-indent: -9999px;
     *text-decoration: none;
     *width: 84px;
     *height: 156px;
     *background: url(i/navigation.jpg) no-repeat;
    ****}
     *
     *.knopka:hover { background-position: 0 -156px; }

    В i/navigation.jpg храниться 2 изображения кнопки, при наведении мыши оно сдвигается и показывает hover картинку, как убираем мышь, бэкграунд возвращается в своё обычное положение.

  7. #7

    Регистрация
    29.01.2005
    Адрес
    Одесса
    Сообщений
    1,020
    а если в ролловере учавствую 3-4 изображения? например - еще одно изображение при нажатии мыши? или посещенная ссылка? или ссылка в фокусе? с учетом того, что ты написал ЦСС только для одной кнопки, то скрипт JS на 5 строк более логичен и уместен.

  8. #8

    Регистрация
    09.02.2004
    Адрес
    Литва/Вильнюс
    Сообщений
    359
    Выдержка из w3.org:

    Код:
    a:link * *{ color: red } * */* unvisited links */
    a:visited { color: blue } * /* visited links * */
    a:hover * { color: yellow } /* user hovers * * */
    a:active *{ color: lime } * /* active links * **/
    Вот вам и бэки для всех поведений....

  9. #9

    Регистрация
    29.01.2005
    Адрес
    Одесса
    Сообщений
    1,020
    ну и? я в курсе, что такое псевдоклассы...
    просто если на странице будет 4-5 ролловеров с 3мя изображениями, то твой ЦСС файл вырастет страшным образом.
    твой способ изящный и интересный, но подходит не под каждый случай.

  10. #10

    Регистрация
    03.09.2005
    Адрес
    Н. Новгород
    Сообщений
    1,255
    решил начать с совета Live
    с одним массивом разобрался, одну кнопку закешировать получилось без проблем
    но сделать несколько массивов не получается, помогайте
    напишите хотя бы пример второго массива
    я пробовал по аналогии - не получается, не грузится ни первый массив, ни второй

  11. #11

    Регистрация
    29.01.2005
    Адрес
    Одесса
    Сообщений
    1,020
    к стати к твоему случаю больше способ agat&#39;a подходит.
    ну а если хочешь массивами, то покажи код, который ты написал.

  12. #12

    Регистрация
    03.09.2005
    Адрес
    Н. Новгород
    Сообщений
    1,255
    я в java вообще не понимаю, поэтому помогайте, пожалуйста!!
    вотт код, который я вставил в head
    Код:
    <head> <script LANGUAGE="JavaScript">
    ****<!--
    ****var pic=new Array("about_on.gif")
    var ima=new Array();
    for(var i=0;i<pic.length;i++)
    {
     ima[i]=new Image(180, 38);
     ima[i].src=pic[i];
    }
    -->
    это массив для первой кнопки
    а вот массив для второй кнопки:
    Код:
    <head> <script LANGUAGE="JavaScript">
    ****<!--
    ****var pic=new Array("hist_on.gif")
    var ima=new Array();
    for(var i=1;i<pic.length;i++)
    {
     ima[i]=new Image(107, 38);
     ima[i].src=pic[i];
    }
    -->
    а вот код в body для первой кнопки about
    Код:
    <a href="about.html" 
    onmouseover="document.about.src=ima[0].src;" 
    onmouseout="document.about.src=&#39;about.gif&#39;;">
    ****[img]about.gif[/img]</a>
    а вот вторая кнопка history
    Код:
    <a href="hist.html" 
    onmouseover="document.hist.src=ima[1].src;" 
    onmouseout="document.hist.src=&#39;hist.gif&#39;;">
    [img]hist.gif[/img]</a>
    Я по аналогии заменил во втором массиве i с 0 на 1
    и похоже не угадал?
    Жду комментариев
    Только сильно не ругайтесь, я же только учусь

  13. #13

    Регистрация
    29.01.2005
    Адрес
    Одесса
    Сообщений
    1,020
    Код:
    var pic=new Array("about_on.gif")
    var ima=new Array();
    for(var i=0;i<pic.length;i++)
    {
    ima[i]=new Image(180, 38);
    ima[i].src=pic[i];
    
    
    var pic2=new Array("hist_on.gif")
    var ima2=new Array();
    for(var i=1;i<pic2.length;i++)
    {
    ima2[i]=new Image(107, 38);
    ima2[i].src=pic[i];
    }
    в коде ima и pic - это названия переменных. ты можешь их назвать, как угодно (ну по правилам, которыми можно называть переменные). пример выше будет работать.
    В хтмл уже работаем с двумя массивами, причем вид записи можно немножко упростит:
    Код:
    <a href="about.html" 
    onmouseover="this.src=ima[0].src;" 
    onmouseout="this.src=&#39;about.gif&#39;;">
    [img]about.gif[/img]</a>
    
    <a href="hist.html" 
    onmouseover="this.src=ima2[0].src;" 
    onmouseout="this.src=&#39;hist.gif&#39;;">
    [img]hist.gif[/img]</a>

  14. #14

    Регистрация
    03.09.2005
    Адрес
    Н. Новгород
    Сообщений
    1,255
    Live, сделал так как Вы сказали
    Всё работает!!!
    Спасибо!
    для интереса хочу научится делать способом agat&#39;a
    что получится, расскажу

  15. #15

    Регистрация
    29.01.2005
    Адрес
    Одесса
    Сообщений
    1,020
    незачто!
    способ агата - для небольшого кол-ва ролловеров, разных размеров картинок, для ролловеров с небольшим кол-вом картинок.
    мой способ - рельно удобный для ролловеров в которых учавствуют большое кол-во картинок одинакового размера.

Похожие темы

  1. Перенаправление после сабмита формы...
    от misfit в разделе Веб-программирование
    Ответов: 0
    Последнее сообщение: 25.05.2007, 19:54
  2. Как сделать анимацию при наведении мыши?
    от mamba в разделе Flash-технологии
    Ответов: 2
    Последнее сообщение: 20.02.2007, 11:29
  3. нет предосмотра после установки AI cs2
    от ArtDobe в разделе Векторная графика
    Ответов: 1
    Последнее сообщение: 19.01.2006, 19:13
  4. утро после вечеринки...
    от digger в разделе Флейм
    Ответов: 20
    Последнее сообщение: 23.12.2004, 13:14

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •