Salut,
Je souhaite utiliser le script d'une galerie de photo (que j'ai trouvé sur cette page http://benjaminsterling.com/jquery-jqgalscroll-photo-gallery/#comment-5879) qui affiche une image au centre et en dessous des numéros (1 2 3 4), lorsqu'on clique sur ces numéros l'image apparait au centre (au-dessus), je souhaiterai maintenant pouvoir cliquer sur l'image au centre pour ouvrir une fenêtre popup afin d'agrandir cette image, je n'y connais rien en javascript, quelqu'un peut-il me dire ce que je dois incorporer/modifier comme code dans mon javascript ci-dessous :
Deuxième question : est-ce possible de remplacer les numéros (1 2 3 4) qui se trouve en dessous de l'image principale par des petites vignettes de ces images ? Que dois-je modifier dans mon code javascript ?
Punaise c'est pas facile le javascript, ça fait quelques jours que je suis là-dessus à tourner en rond...
Merci pour votre aide.
Je souhaite utiliser le script d'une galerie de photo (que j'ai trouvé sur cette page http://benjaminsterling.com/jquery-jqgalscroll-photo-gallery/#comment-5879) qui affiche une image au centre et en dessous des numéros (1 2 3 4), lorsqu'on clique sur ces numéros l'image apparait au centre (au-dessus), je souhaiterai maintenant pouvoir cliquer sur l'image au centre pour ouvrir une fenêtre popup afin d'agrandir cette image, je n'y connais rien en javascript, quelqu'un peut-il me dire ce que je dois incorporer/modifier comme code dans mon javascript ci-dessous :
Code:
(function($) {
$.fn.jqGalScroll = function(options){
return this.each(function(i){
var el = this
el.curImage = 0;
el.jqthis = $(this).css({position:'relative'});
el.jqchildren = el.jqthis.children();
el.opts = $.extend({}, jqGalScroll, options);
el.index = i;
el.totalChildren = el.jqchildren.size();
var width,height;
switch(el.opts.direction){
case 'horizontal':
width = el.totalChildren *el.opts.width;
height = el.opts.height;
break;
case 'vertical':
width = el.opts.width;
height = el.totalChildren *el.opts.height;
break;
default:
width = el.totalChildren *el.opts.width;
height = el.totalChildren *el.opts.height;
break;
};
el.container = $('<div id="jqGS'+i+'" class="jqGSContainer">').css({position:'relative'});
el.ImgContainer = $('<div class="jqGSImgContainer" style="height:'+el.opts.height+'px;position:relative;overflow:hidden">')
.css({height:el.opts.height,width:el.opts.width,position:'relative',overflow:'hidden'});
el.jqthis.css({height:height,width:width});
el.jqthis.wrap(el.container);
el.jqthis.wrap(el.ImgContainer);
el.pagination = $('<div class="jqGSPagination">');
el.jqthis.parent().parent().append(el.pagination);
var jqul = $('<ul>').appendTo(el.pagination);
var pos = {x:0,y:0};
el.jqchildren
.each(function(j){
var selected = '';
if(j == 0) selected = 'selected';
var $a = $('<a href="#'+(j)+'" title="Cliquez pour afficher la photo" class="'+selected+'">'+(j+1)+'</a>').click(function(){
var href = this.index;//href.replace(/^.*#/, '');
el.pagination.find('.selected').removeClass('selected');
$(this).addClass('selected');
var params = {};
if( el.opts.direction == 'diagonal'){
params = {right:(el.opts.width*href),bottom:(el.opts.height*href)}
}
else if( el.opts.direction == 'vertical'){
params = {bottom:(el.opts.height*href)}
}
else if( el.opts.direction == 'horizontal'){
params = {right:(el.opts.width*href)}
};
el.jqthis.stop().animate(params,el.opts.speed, el.opts.ease);
index = href;
return false;
});
var n = $a.get(0);
n.index = j;
$('<li>').appendTo(jqul).append($a);
if( el.opts.direction == 'diagonal'){
pos.x = j * el.opts.width;
pos.y = j * el.opts.height;
}
else if( el.opts.direction == 'horizontal'){
pos.x = j * el.opts.width;
}
else if( el.opts.direction == 'vertical'){
pos.y = j * el.opts.height;
};
var jqchild = $(this).css({height:el.opts.height,width:el.opts.width,position:'absolute',left:pos.x, top:pos.y});
var jqimg = jqchild.find('img').hide()
if(jqimg.parent().is('a')){
var p = jqimg.parent();
jqimg.get(0).linkHref = p.attr('href');
p.remove();
jqimg.appendTo(jqchild);
};
jqimg.click(function(){
var next = n.index + 1;
if((n.index + 1) == el.totalChildren ){
el.pagination.find('[href$=#0]').click();
}
else{
el.pagination.find('[href$=#'+next+']').click();
}
});
var $loader = $('<div class="jqGSLoader">').appendTo(jqchild);
var $titleHolder = $('<div class="jqGSTitle">').appendTo(jqchild).css({opacity:el.opts.titleOpacity}).hide();
var image = new Image();
image.onload = function(){
image.onload = null;
$loader.fadeOut();
if(window.navigator.appName == 'Microsoft Internet Explorer')
{
jqimg.css({marginLeft:-image.width*.42,marginTop:-image.height*.54,position:'absolute',left:'50%',top:'50%'}).fadeIn();
}
else
{
jqimg.css({marginLeft:-image.width*.5,marginTop:-image.height*.5,position:'absolute',left:'50%',top:'50%'}).fadeIn();
}
var alt = jqimg.attr('alt');
if(typeof alt != 'undefined'){
$titleHolder.text(alt).fadeIn();
}
};
image.src = jqimg.attr('src');
});
}); // end : this.each(function()
}; // end : $.fn.jqGalScroll
jqGalScroll = {
ease: null,
speed:1500,
height: 210,
width: 210,
titleOpacity : .0,
direction : 'horizontal' // vertical horizontal diagonal
};
})(jQuery);
Deuxième question : est-ce possible de remplacer les numéros (1 2 3 4) qui se trouve en dessous de l'image principale par des petites vignettes de ces images ? Que dois-je modifier dans mon code javascript ?
Punaise c'est pas facile le javascript, ça fait quelques jours que je suis là-dessus à tourner en rond...
Merci pour votre aide.