2014-04-10 4 views
0

Учитывая логотип больше похож на содержание (чем украшение) на веб-странице, я нахожу this markup подходит для моего сайта:Учитывая, что логотип - это контент, как отображать другое изображение при наведении?

<h1 id="logo"> 
    <a href="http://stackoverflow.com"> 
    <img src="logo.png" alt="Stack Overflow"> 
    </a> 
</h1> 

Учитывая случай, как я должен идти о создании опрокидывание/парения эффект такой, что другой Изображение логотипа отображается при наведении? (Например, фактический логотип черно-белый, при наведении курсора мыши, красочное изображение логотипа показано.)

Делая какие-нибудь, как это чувствует себя глупо (но у меня нет лучших идей в уме):

HTML :

<h1 id="logo"> 
    <a href="http://stackoverflow.com"> 
    <img id="logo-img1" src="logo1.png" alt="Stack Overflow"> 
    <img id="logo-img2" src="logo2.png" alt="Stack Overflow"> 
    </a> 
</h1> 

CSS:

#logo #logo-img2 { 
    display: none; 
} 
#logo:hover #logo-img1 { 
    display: none; 
} 
#logo:hover #logo-img2 { 
    display: inline; 
} 

ответ

2

Вы можете использовать box-sizing свойства для загрузки второго изображения в background и показать его на hover: HTML базе:

<h1 id="logo"> 
    <a href="http://stackoverflow.com"> 
    <img src="http://lorempixel.com/100/100/abstract/2" alt="Stack Overflow"> 
    </a> 
</h1> 

Основание CSS:

h1 a img { 
    background:url(http://lorempixel.com/100/100/people/9);/* preload img 2 here */ 
    box-sizing:content-box;/* safe reset , use prefix */ 
} 
h1 a:hover img { 
    height:0; 
    width:0; 
    padding:50px; 
} 

DEMO

+0

Не могли бы вы рассказать мне, где вы получили значение «50px» для заполнения? Половина высоты и ширины изображения правильная? –

+1

@its_me да, это он, он держит тег img, чтобы иметь ширину и высоту 100 пикселей, размер самого img. для адаптации к размерам изображений. Для информации вы можете добавить переход и получить несколько эффектов: http://codepen.io/gc-nomade/pen/Joqzp –

0

Вы имеете право идею, но ваш :hover находится в неправильном месте, а селекторы немного разряжены.

Это должно работать, и это более эффективно при загрузке страницы!

HTML:

<div id="logo"> 
    <a href="http://stackoverflow.com"> 
    <img id="logo-img" src="logo1.png" alt="Stack Overflow"> 
    </a> 
</div> 

CSS:

#logo #logo-img { 
    content:url("logo1.png"); 
} 

#logo #logo-img:hover { 
    content:url("logo2.png"); 
} 
+0

Да, его вполне можно сделать! Все, что вам нужно сделать, это указать URL-адрес изображения как-то так и сделать его фоновым изображением элемента '#logo # logo-img {background-image: url (" logo1.png "); } ' , и как только оно зависнет, вы делаете это: ' #logo # logo-img: hover {background-position: 0px 10px; } ' В основном используется одно и то же изображение, но просто перемещает другую часть его в поле зрения. См. Здесь: http://css-tricks.com/css-sprites/ –

+0

Похоже, что это не совместимо с кросс-браузером! (И пример в скрипте JS не работает (последняя версия Firefox в Windows 7). Эффект зависания отсутствует.) –

+0

По моему мнению, это плохая практика переключения контента внутри тега таким образом, рядом, а не что некоторые поисковые системы оценят этот беспристрастный трюк :) –

 Смежные вопросы

  • Нет связанных вопросов^_^