J'essaie de développer du code où une jquery prend des images et les redimensionne pour s'adapter à la div parente, avec une option pour cliquer sur l'image pour la voir en taille réelle avec fancybox. J'essaye de faire toutes les images avec la classe "expand", et ne prévois pas avoir plus que sur l'image avec cette classe par page.Utiliser fancybox pour voir l'image en taille réelle
Voici ce que j'ai trouvé jusqu'à présent. L'image se redimensionne très bien, et je peux cliquer sur l'image pour faire apparaître la fancybox, mais c'est à la taille redimensionnée, pas à l'original. J'ai de la largeur et de la hauteur en tant que vars pour les dimensions originales, mais les spécifier ne fonctionne pas, depuis son inline. Donc, j'ai besoin d'utiliser une iframe que j'ai trouvée, et j'ai essayé d'envelopper un lien autour d'elle et de spécifier le lien comme une iframe avec les dimensions spécifiées, en saisissant .attr ("src") pour le lien. Mais peu importe ce que je fais, il va à la page 404 dans le fancybox. Voici ce que j'ai, je ne sais pas comment procéder, ou est-ce que je pense à ce problème de la mauvaise façon?
if($('img.expand').length){
var parentClass = $('img.expand').parent().attr("class");
var fwidth = $('img.expand').attr("width");
var fheight = $('img.expand').attr("height");
if($('img.expand').parents().is('.grid_10')){
$('img.expand').each(function() {
var maxwidth = 590;
var obj = $('img.expand');
var width = obj.width();
var height = obj.height();
if (width > maxwidth) {
//Set variables for manipulation
var ratio = (height/width);
var new_width = maxwidth;
var new_height = (new_width * ratio);
//Shrink the image and add link to full-sized image
obj.height(new_height).width(new_width);
}
});
}
$('img.expand').fancybox({
'transitionIn' : 'fade',
'transitionOut' : 'fade',
'speedIn' : 600,
'speedOut' : 200,
'overlayShow' : false,
'titlePosition' : 'inside'
});
}