Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 18:54   #1
Lamo
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 49
По умолчанию Изменение картинки в другом блоке через hover

Здравствуйте!
Хочу сделать горизонтальное меню, при наведении на кнопки которого менялась бы картинка header(располагается над меню). Планирую, чтобы каждой кнопке соответствовала своя картинка.
Примерно как это выглядит: mammoth-russia.ru.
Только у них меню вертикальное. И не знаю как это у них сделано.
Как можно реализовать мою задумку?
Подскажите пожалуйста.
Lamo вне форума Ответить с цитированием
Старый 28.11.2012, 19:33   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

jQuery метод .hover(). Работаете внутри примитивно с DOM, меняете background нужного слоя. Картинки рекомендую предзагрузить в переменную или слить в один спрайт и менять background-position. Иначе будет с задержкой.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 28.11.2012, 19:40   #3
Lamo
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
jQuery метод .hover(). Работаете внутри примитивно с DOM, меняете background нужного слоя. Картинки рекомендую предзагрузить в переменную или слить в один спрайт и менять background-position. Иначе будет с задержкой.
А пример кода не подкинете? Просто я не спец в этой области, сайт делаю пхпшоп цмс фри.
Lamo вне форума Ответить с цитированием
Старый 28.11.2012, 20:01   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

(Например) Создайте несколько img в контейнере .pic, сделайте всем display:none кроме первого. Создайте меню nav>a*6. Каждому a добавьте data-id с номером по порядку начиная от нуля.
Поскольку hover не делегируется пока что, я думаю не будет ничего плохого в том, чтобы написать так:
Код:
$('nav a').hover(function(){
    var id = $(this).data('id');
    $('.pic img:eq('+id+')').show();
  }, function(){
    $('.pic img').hide();
})
Может и не красиво, но коротко и понятно) Упростить и оптимизировать можно, если стоит такая задача - подскажу как.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 28.11.2012 в 20:06.
MyLastHit вне форума Ответить с цитированием
Старый 28.11.2012, 20:21   #5
Lamo
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 49
По умолчанию

А как можно Ваш код приделать к моему? Разрешите приведу код css:
Это код горизонтальной менюшки:
Код:
.smk-menu a, .smk-menu a:link, .smk-menu a:visited, .smk-menu a:hover { text-align: left; text-decoration: none; outline: none; letter-spacing: normal; word-spacing: normal; }
.smk-menu, .smk-menu ul { margin: 0; padding: 0; border: 0; list-style-type: none; display: block; }
.smk-menu li { margin: 0; padding: 0; border: 0; display: block; float: left; position: relative; z-index: 5; background: none; }
.smk-menu li:hover { z-index: 10000; white-space: normal; }
.smk-menu li li { float: none; }
.smk-menu ul { visibility: hidden; position: absolute; z-index: 10; left: 0; top: 0; background: none; }
.smk-menu li:hover>ul { visibility: visible; top: 100%; }
.smk-menu li li:hover>ul { top: 0; left: 100%; }
.smk-menu:after, .smk-menu ul:after { content: "."; height: 0; display: block; visibility: hidden; overflow: hidden; clear: both; }
.smk-menu, .smk-menu ul { min-height: 0; }
.smk-menu ul { background-image: url(images/spacer.gif); padding: 10px 30px 30px 30px; margin: -10px 0 0 -30px; }
.smk-menu ul ul { padding: 30px 30px 30px 10px; margin: -30px 0 0 -10px; }
div.smk-nav-center { position: relative; float: right; right: 50%; }
ul.smk-menu { position: relative; float: left; left: 50%; }
.firefox2 ul.smk-menu { float: none; }
.smk-menu { padding: 6px 6px 6px 6px; }
.smk-nav { position: relative; height: 39px; z-index: 100; }
.smk-nav .l, .smk-nav .r { position: absolute; z-index: -1; top: 0; height: 39px; background-image: url('images/nav.png'); }
.smk-nav .l { left: 0; right: 0; }
.smk-nav .r { right: 0; width: 996px; clip: rect(auto, auto, auto, 996px); }
.smk-menu a { position: relative; display: block; overflow: hidden; height: 27px; cursor: pointer; text-decoration: none; }
.smk-menu ul li { margin:0; clear: both; }
.smk-menu a .r, .smk-menu a .l { position: absolute; display: block; top: 0; z-index: -1; height: 81px; background-image: url('images/menuitem.png'); }
.smk-menu a .l { left: 0; right: 4px; }
.smk-menu a .r { width: 408px; right: 0; clip: rect(auto, auto, auto, 404px); }
.smk-menu a .t { margin-right: 10px; margin-left: 10px; font-weight: bold; font-size: 14px; color: #383838; padding: 0 14px; margin: 0 4px; line-height: 27px; text-align: center; }
.smk-menu a:hover .l, .smk-menu a:hover .r { top: -27px; }
.smk-menu li:hover a a .l, .smk-menu li:hover a .r { top: -27px; }
.smk-menu a:hover .t { color: #EBEBEB; }
.smk-menu li:hover a .t { color: #EBEBEB; }
Кусок кода html менюшки:
Код:
  <div class="smk-header">
        <div class="smk-header-png"></div>
        <div class="smk-header-jpeg"></div>
        <div class="smk-logo">
          <h1 id="name-text" class="smk-logo-name"><a href="http://www.Название сайта.ru/" title="@name@">Название сайта</a></h1>
          <div id="slogan-text" class="smk-logo-text">Слоган фирмы</div>
        </div>
      </div>
      <div class="smk-nav">
        <div class="l"></div>
        <div class="r"></div>
        <div class="smk-nav-center">
          <ul class="smk-menu">
            <li class="item28"><a href="/" title="Главная"><span class="l"> </span><span class="r"> </span><span class="t">Главная</span></a></li>
            <li class="item28"><a href="/" title="Проектирование"><span class="l"> </span><span class="r"> </span><span class="t">Проектирование</span></a></li>
            <li class="item28"><a href="/" title="Монтаж"><span class="l"> </span><span class="r"> </span><span class="t">Монтаж</span></a></li>
            <li class="item28"><a href="/" title="Сервис"><span class="l"> </span><span class="r"> </span><span class="t">Сервис</span></a></li>
            <li class="item28"><a href="/" title="Примеры работ"><span class="l"> </span><span class="r"> </span><span class="t">Примеры работ</span></a></li>
            <li class="item28"><a href="/" title="Стоимость услуг"><span class="l"> </span><span class="r"> </span><span class="t">Стоимость услуг</span></a></li>
            <li class="item28"><a href="/" title="Контакты"><span class="l"> </span><span class="r"> </span><span class="t">Контакты</span></a></li>
           </ul>
        </div>
      </div>
      <div class="smk-content-layout">
        <div class="smk-content-layout-row">
          <div class="smk-layout-cell smk-sidebar1">
            <div class="smk-block">
Lamo вне форума Ответить с цитированием
Старый 28.11.2012, 21:05   #6
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Приделать можно. Если сами думать не хотите, то тут есть ветка фриланса.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение сообщения notifyicon в другом классе Красноглаз C# (си шарп) 2 29.02.2012 19:18
Изменение количества наименования на одном листе при вводе на другом Leito_07 Microsoft Office Excel 2 08.01.2012 23:41
Изменение размера картинки denisov PHP 3 24.02.2010 18:31
Изменение размера картинки Борис Низов PHP 6 09.12.2007 16:26
Изменение SysListView32 в другом приложении Legos Общие вопросы Delphi 1 16.10.2007 02:29