2009-06-21 3 views

Répondre

3

Vous devez mettre à jour votre CSS, assurez-vous .image img est positionné absolument:

.image img { 
    position: absolute; // added 
    height: 100%; 
    width: 100%; 
} 

Cela fera fonctionner la diapositive. L'image sera affichée à l'extérieur de l'div, cependant. Pour corriger cela, ajoutez une overflow: hidden propriété à .image:

.image { 
    // ... 
    overflow: hidden; // added 
} 

Mise à jour: étant donné que dans la solution ci-dessus vous vous retrouvez avec le texte derrière le .image div (ie avec des liens non cliquables), vous feriez mieux de glisser que plutôt que l'image. Au lieu de ce qui précède, procédez comme suit:

.box { 
    // ... 
    overflow: hidden; // added 
} 

Et dans votre javascript:

$('div.box').hover(function() { 
    $(this).find(".image").animate({top:'200px'},{queue:false,duration:500}); 
}, function() { 
    $(this).find(".image").animate({top:'0px'},{queue:false,duration:500}); 
}); 

Notez que le nous suivons maintenant l'événement hover sur le div.box, et glisser vers le bas du div.image.

+0

Il est aussi simple que cela ... tu as fait ma journée, merci! ... pourquoi sans l'absolu ça ne marche pas?, une idée ? – menardmam

+0

La propriété supérieure n'a aucun effet sur les éléments qui ne sont pas positionnés de manière absolue ou relative. Ceci est conforme aux spécifications CSS. – molf

+0

TRAVAIL GREEEEEEEAT merci ... – menardmam

0

il fonctionne avec

position:relative; 

aussi, mais vous devez changer votre JS:

$('div.webpreview').hover(....); 

comme il n'y a pas div avec classe "image" dans la page :)

Pour le lien cliquable:

STYLE:

.webpreview img { 
    height: 100%; 
    position:relative; 
    overflow:hidden; 
    width: 100%; 
    z-index:100;//note this 
} 

.box .linkDiv{ 
     top:-300px; 
     position:absolute; 
     overflow:hidden; 
     z-index:200; 
} 

JS:

$(document).ready(function() { 
$('div.box').hover(
     function(){ 
      $('div.webpreview',$(this)).find("img").animate(
         {top:'200px'},{queue:false,duration:1000}); 
      $("div.linkDiv", $(this)).animate({top:'0px'}, 
         {queue:false, duration:500}); 
     }, 

     function(){ 
      $('div.webpreview',$(this)).find("img").animate(
         {top:'0px'},{queue:false,duration:1000}); 
      $("div.linkDiv",$(this)).animate({top:'-300px'}, 
         {queue:false, duration:500}); 
     } 
     ); 
}); 

HTML:

<div class="box"> 
<div class="linkDiv"> 
    <strong>Client :</strong> Sous le charme des érables<strong><br> 
     Manda : </strong>Conception et réalisation<br> 
     <strong>Adresse : <a href="http://www.souslecharme.ca/" 
      target="_blank">www.souslecharme.ca</a></strong> 
</div> 
    <div class="webpreview"><img src="test-portfolio_files/souslecharme.jpg"></div> 
</div> 

vous pouvez aussi le faire avec le changement z-index de div contenant le lien:

 $('div.box').hover(
     function(){ 
      $('div.webpreview',$(this)).find("img").animate(
         {top:'200px'},{queue:false,duration:1000}); 
      $("div.linkDiv", $(this)).css("z-index","200"); 
     }, 

     function(){ 
      $('div.webpreview',$(this)).find("img").animate(
         {top:'0px'},{queue:false,duration:1000}); 
      $("div.linkDiv", $(this)).css("z-index","50"); 
     }); 
+0

c'était un test pour voir si le mot image était le proble (comme un mot protégé ne pas utiliser en css), je suis de retour à la classe d'image! .. – menardmam

+0

je suis assez sûr que votre solution fonctionne bien ... mais molf trouve une solution avec juste l'échange de la gâchette, ce qui est bien pour moi ... je vais vous aider, mais je vais rester simple, merci! – menardmam

Questions connexes