Наложение Jquery при нажатии на изображение

#javascript #jquery #css #overlay

#javascript #jquery #css #наложение

Вопрос:

Не лучший вариант с jquery, может кто-нибудь предложить общий подход к тому, чего я пытаюсь достичь, пожалуйста? У меня есть сетка фотографий, и при нажатии на них поверх всего изображения будет анимировано непрозрачное наложение, наложение будет содержать некоторый динамически заданный текст. У меня есть изображения, и обработчик onclick работает, просто пытаюсь найти наилучший способ применения наложения. Спасибо

Ответ №1:

Не очень красиво семантически, но должно выполнить работу: допустим, ваши изображения размером 200×200.

 <div class='imgcontain'>
<img src='yourimg' alt='' width='200' height='200'>
<p>Your text>/p>
</div>

<div class='imgcontain'>
<img src='yourimg' alt='' width='200' height='200'>
<p>Your text>/p>
</div>

<div class='imgcontain'>
<img src='yourimg' alt='' width='200' height='200'>
<p>Your text>/p>
</div>
 

// и т.д…

Затем CSS :

 .imgcontain
{
position: relative;
width: 200px;
height: 200px;
overflow: hidden; // not sure you want to makes the overlay just show or slide from top. This is useful only if it should slide.
}

.imgcontain img
{
position: absolute;
width: 200px;
height: 200px;
top: 0px;
left: 0px;
z-index: 2;
}

.imgcontain p
{
position: absolute;
display: block;
width: 200px;
height: 200px;
top:  0px; // if slide from top, -200px
left: 0px;
background: rgba(0,0,0,0.5) // or a background image like a transparent png with repeat
z-index: 1;
}

.imgcontain:hover p
{
z-index: 3; // if slide from top, top: 0px
}
 

Это чистое CSS-решение, без анимации, работает для пользователей с Javascript.

Если вы хотите затем анимировать его с помощью Jquery :

 $(.imgcontain p).hide().css('z-index','3'); // on ready, hide the overlay. Maybe throw the .css() in callback.
 

затем, при щелчке / наведении курсора мыши

 $(.imgcontain).click(function()
{
$(.imgcontain p).show();
});
 

Ответ №2:

Проверьте этот веб-сайт, возможно, это поможет вам. http://flowplayer.org/tools/overlay/index.html