开发者

Suggestion for gallery thumbnail on click?

I'm trying to build an image gallery with thumbnails and a display for a larger image. At present, its working when the the mouse hovers over the thumbnail which displays the larger image. However I wish to replace the hover feature with an on click so that the larger image does not disappear when the mouse leaves the thumbnail. From a bit of research I'm lead to believe that this can not be done with css as with the hover feature and that I would need to include some script. As I'm new to web development after this I'm a bit lost and would appreciate some help. Below is the html code for the gallery container and the corresponding css code......where do I start from here?

Thanks A

html code

<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 code

.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 5开发者_StackOverflow社区px 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;
}


Heres a simple start with jquery.

http://jsfiddle.net/8GKXM/

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

This is what the jquery says basically:

On every individual .thumbnail click:

hide .thumbnail span ( as in every span it finds ) then find clicked .thumbnail's span and show that


I would probably move the bigger images into their own container though...


You can use jQuery along with blockUI plugin:

<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>

And then you can use the window onload event to attach the onclick event to fire the large image with blockUI:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜