Предложение для галереи миниатюр на клик? - PullRequest
0 голосов
/ 06 июля 2011

Я пытаюсь создать галерею изображений с миниатюрами и дисплеем для увеличения изображения. В настоящее время работает, когда мышь наводит курсор на миниатюру, которая отображает увеличенное изображение. Однако я хочу заменить функцию наведения на щелчок, чтобы увеличенное изображение не исчезало, когда мышь покидает миниатюру. После небольшого исследования я понял, что этого нельзя сделать с помощью css, как с функцией наведения, и что мне нужно будет включить какой-нибудь скрипт. Поскольку я новичок в веб-разработке после этого, я немного растерялся и был бы признателен за помощь. Ниже приведен HTML-код для контейнера галереи и соответствующий CSS-код ...... с чего мне начать?

Спасибо A

HTML-код

<div class="gallerycontainer">

    <a class="thumbnail" href="#thumb"><img src="images/gallery/1one/101.jpg" width="56px" height="80px" border="0" /><span><img src="images/gallery/1one/101.jpg" width="405px" height="585px"/></span></a>

    <a class="thumbnail" href="#thumb"><img src="images/gallery/1one/102.jpg" width="56px" height="80px" border="0" /><span><img src="images/gallery/1one/102.jpg" width="405px" height="585px"/></span></a>

<a class="thumbnail" href="#thumb"><img src="images/gallery/1one/103.jpg" width="56px" height="80px" border="0" /><span><img src="images/gallery/1one/103.jpg" width="405px" height="585px"/></span></a>

<a class="thumbnail" href="#thumb"><img src="images/gallery/1one/104.jpg" width="56px" height="80px"border="0" /><span><img src="images/gallery/1one/104.jpg" width="405px" height="585px"/></span></a>

<br />

</div>

код CSS

.gallerycontainer{
position: absolute;
/*Add a height attribute and set to largest image's height to prevent overlaying*/
}

.thumbnail img{
border: 1px solid white;
margin: 0 5px 5px 0;
}

.thumbnail:hover{
background-color: transparent;
}

.thumbnail:hover img{
border: 1px solid grey;
}

.thumbnail span{ /*CSS for enlarged image*/
position: absolute;
background-color: #000000;
padding: 5px;
left: -1000px;
border: none;
visibility: hidden;
color: black;
text-decoration: none;
}

.thumbnail span img{ /*CSS for enlarged image*/
border-width: 0;
padding: 2px;
}

.thumbnail:hover span{ /*CSS for enlarged image*/
visibility: visible;
top: 0;
left: 300px; /*position where enlarged image should offset horizontally */
z-index: 50;
}

Ответы [ 2 ]

0 голосов
/ 06 июля 2011

Вот простое начало с jquery.

http://jsfiddle.net/8GKXM/

$('.thumbnail').each(function(){
    $(this).click(function() {
        $('.thumbnail span').hide();
       $(this).find('span').show('slow');
    });
});

Вот что в основном говорит jquery:

На каждом отдельном клике .thumbnail нажмите:

скрыть .thumbnail span (как в каждом найденном промежутке) затем найти клик. span и показать, что


Я бы, вероятно, переместил большие изображения в их собственный контейнер, хотя ...

0 голосов
/ 06 июля 2011

Вы можете использовать jQuery вместе с плагином blockUI :

<div class="gallerycontainer">
    <a class="thumbnail" href="#thumb" class="imgthumb"><img src="images/gallery 
        /1one/101.jpg" width="56px" height="80px" border="0" /></a>
    <a class="thumbnail" href="#thumb" class="imgthumb"><img src="images/gallery
        /1one/102.jpg" width="56px" height="80px" border="0" /></a>
</div>

И затем вы можете использовать событие окна onload, чтобы прикрепить onclickсобытие для запуска большого изображения с blockUI:

$(function(){
 $(".imgthumb").onclick(function() {
  $.blockUI({
   message: "<div><img src=" + $(this + " > img").attr("src") + " width='405' height='585' /></div>";
   css: { border: '1px solid grey'}    
  });
 });
});
...