Как сделать так, чтобы изображение появлялось на изображении при наведении, используя спрайты

0

Я пытаюсь сделать некоторые строки появляются (скажем, около 10 пикселей) после наведения мыши на изображение в нижней части изображения Изображение 174551

Я видел это на веб-сайте MTV в разделе "Вам также понравятся эти" ниже каждого сообщения. Для этого используйте css-справочные спрайты.

Я схожу с ума после неоднократных неудачных попыток воссоздать. Все работает, за исключением основной линии на подъеме. Это мой код до сих пор

CSS

.yel_strip{background-position:-280px -495px; width:165px; margin:-8px 0 0 0; height:5px; position:absolute; display:none; z-index:1;}

.yel_strip:hover{ background:url(http://mtv.in.com/images/sprite_v1.png) no-repeat;}

HTML

<div class="movieL  hover_thumb">
<div><a href=""><img width="165" height="93" alt="" src=""/></a>
<div class="yel_strip"></div>
</div> </div>

Любая помощь будет оценена. Спасибо.

Теги:
css-sprites

3 ответа

1
Лучший ответ

Я сделал для вас рабочую скрипку без дополнительной разметки в вашем html: http://jsfiddle.net/PJMPw/3/

Ваш HTML:

<a href="#" class="hoverable">
    <img src="http://placekitten.com/g/300/300" />
</a>

И CSS:

.hoverable {
    display: block;
    position: relative;
    width: 300px;
    height: 300px;
    overflow: hidden;
}

.hoverable:hover:after {
    bottom: 0;
}

.hoverable:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 10px;
    bottom: -10px;
    left: 0;
    background: -moz-linear-gradient(left,  rgba(46,170,232,1) 0%, rgba(255,235,137,1) 100%);
    background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(46,170,232,1)), color-stop(100%,rgba(255,235,137,1)));
    background: -webkit-linear-gradient(left,  rgba(46,170,232,1) 0%,rgba(255,235,137,1) 100%);
    background: -o-linear-gradient(left,  rgba(46,170,232,1) 0%,rgba(255,235,137,1) 100%);
    background: -ms-linear-gradient(left,  rgba(46,170,232,1) 0%,rgba(255,235,137,1) 100%);
    background: linear-gradient(to right,  rgba(46,170,232,1) 0%,rgba(255,235,137,1) 100%);
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}
  • 0
    я дошел до этого jsfiddle.net/vVw7X/1 есть ли способ заставить эту вещь всплыть, даже когда кто-то наводит курсор на текст? Кажется, это невозможно, учитывая структуру :(
  • 0
    вы можете просто поместить этот текст в этот якорь
Показать ещё 1 комментарий
1

Это HTML:

Замените http://yoururl своим URL-адресом.

<div class="container">
    <a href="http://yoururl" id="internal_image"><span></span></a>
</div>

Это CSS:

Замените адрес http//yourimage на ваш адрес изображения.

.container {
    width: 165px;
    height: 93px;
    background: url('http//yourimage');
    position: relative;
}

#internal_image {
    display: blocK;
    width: 165px;
    height: 93px;
}

#internal_image:hover span {
    display: block;
    width: 165px;
    height: 5px;
    position: absolute;
    background: url(http://mtv.in.com/images/sprite_v1.png) no-repeat;
    background-position: -280px -495px;
    bottom: 0;
}

EDIT: Добавлено ПРИМЕР: http://jsfiddle.net/BmwCe/3/

  • 0
    Пожалуйста :)
1

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

т.е.

наценка

<div class="image-container">
        <img src="../styles/images/Desert.jpg" />
    </div>

CSS

.image-container {
    display: inline-block;
    position: relative;
}

.image-container img {
    width: 100px;
    height: 100px;
}


.image-container img:hover  {
    border-bottom: 5px solid green;
}

Если вы настаиваете на том, что хотите иметь фоновое изображение вместо границы, вы можете сделать это

<div class="image-container">
        <img src="../styles/images/Desert.jpg" />
        <div class="shiny-border"></div>
    </div>



.image-container {
    display: inline-block;
    position: relative;
}

.image-container img {
    width: 100px;
    height: 100px;
}

.image-container .shiny-border {
    position: absolute;
    top: 90px; //subtract the height of the shiny-border from 100px which is the height                      // to have the inset effect of the image 
    height: 10px;
    width: 100%;
    display: none;
}

.image-container img:hover + .shiny-border {
    display: block;
    background-image: url(../styles/images/Hydrangeas.jpg);
}
  • 0
    добавление границы применяется ко всему макету и делает его нервным при наведении на него курсора.
  • 0
    @jimmyweb: Thatsy div позиционируется абсолютно. Так что ничего не спрыгивает с поля
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню