2017-09-29 2 views
1

Je vais avoir un petit problème en essayant d'obtenir mes images pour passer de left (-700px) à leur emplacement au centre (0px). Je ne suis pas 100% sûr de ce que je fais mal ici comme le transition n'est pas lui-même fonctionne. Je dois maintenir la structure originale du HTML (si possible). J'ai appliqué une animation différente sur la couleur d'arrière-plan et cela semble fonctionner, donc je pense que cela pourrait être dû à des marges ou quelque chose comme ça. Je suis relativement nouveau pour les animations CSS et je sais que cela peut être fait plus efficacement avec jQuery (croyez-moi). Si quelqu'un peut donner n'importe quelle contribution s'il vous plaît faites le moi savoir ou si vous avez besoin de plus d'informations s'il vous plaît laissez-moi savoir!CSS3 De gauche à droite transition ne fonctionne pas

Voici le HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>CS 350 - Lab #5</title> 
    <link rel="stylesheet" href="./css/style.css" type="text/css"> 
</head> 
<body> 
     <h1 id="title">Image Gallery</h1> 
     <div id="mygallery"> 
      <ul id="full-image"> 
       <li id="desert"> 
       <img src="./images/desert.jpg" alt="desert"/> 
       <p><span>Desert</span></p> 
       </li> 
       <li id="koala"> 
       <img src="./images/koala.jpg" alt="koala"> 
       <p><span>Koala</span></p> 
       </li> 
       <li id="lighthouse"> 
       <img src="./images/lighthouse.jpg" alt="lighthouse"> 
       <p><span>Lighthouse</span></p> 
       </li> 
       <li id="penguins"> 
       <img src="./images/penguins.jpeg" alt="penguins"> 
       <p><span>Penguins</span></p> 
      </li> 
      </ul> 
      <ul id="thumb-image"> 
       <li> 
       <a href="#desert"> 
        <img src="./images/desert.jpg" alt="desert"> 
       </a> 
       </li> 
       <li> 
       <a href="#koala"> 
        <img src="./images/koala.jpg" alt="koala"> 
       </a> 
       </li> 
       <li> 
       <a href="#lighthouse"> 
        <img src="./images/lighthouse.jpg" alt="lighthouse"> 
       </a> 
       </li> 
       <li> 
       <a href="#penguins"> 
       <img src="./images/penguins.jpeg" alt="penguins"> 
       </a> 
       </li> 
      </ul> 
     </div> 
    </body> 
</html> 

Et le CSS:

body { 
    background-color: #d9d6cb; 
} 

#title { 
    font-family: Agency FB; 
    text-shadow: 2px 2px #F1F1F1; 
    text-align: center; 
} 

#mygallery { 
    width: 580px; 
    height: 480px; 
    margin: auto; 
    padding: 20px; 
    background-color: #000000; 
} 

#full-image { 
    list-style: none; 
    width: 580px; 
    height: 400px; 
    margin: 0px; 
    padding: 0px; 
    overflow: hidden; 
    position: relative; 
} 

#full-image img { 
    width: 580px; 
} 

:target { 
    animation: slideImage 2s; 
    -webkit-animation: slideImage 2s; 
    -moz-animation: slideImage 2s; 
} 

#thumb-image { 
    list-style: none; 
    overflow: auto; 
} 

#thumb-image img { 
    width: 50px; 
    height: 50px; 
    float: right; 
    margin-left: 5px; 
    border: 1px solid #ffffff; 
    opacity: 0.5; 
} 

#thumb-image img:hover { 
    opacity: 1; 
} 

#thumb-image li { 
    position: relative; 
} 

@-webkit-keyframes slideImage { 
    0% {left:-700px;} 
    100% {left:0px;} 
} 

@-moz-keyframes slideImage { 
    0% {left:-700px;} 
    100% {left:0px;} 
} 

@keyframes slideImage { 
    0% {left:-700px;} 
    100% {left:0px;} 
} 

Encore une fois, tout aide!

Répondre

3

Vous devez donner position: absolute; au :target si vous souhaitez manipuler left propriété (comme il le fait dans vos images clés). Voici l'exemple de travail:

body { 
 
    background-color: #d9d6cb; 
 
} 
 

 
#title { 
 
    font-family: Agency FB; 
 
    text-shadow: 2px 2px #F1F1F1; 
 
    text-align: center; 
 
} 
 

 
#mygallery { 
 
    width: 580px; 
 
    height: 480px; 
 
    margin: auto; 
 
    padding: 20px; 
 
    background-color: #000000; 
 
} 
 

 
#full-image { 
 
    list-style: none; 
 
    width: 580px; 
 
    height: 400px; 
 
    margin: 0px; 
 
    padding: 0px; 
 
    overflow: hidden; 
 
    position: relative; 
 
} 
 

 
#full-image img { 
 
    width: 580px; 
 
} 
 

 
:target { 
 
    position: absolute; 
 
    animation: slideImage 2s; 
 
    -webkit-animation: slideImage 2s; 
 
    -moz-animation: slideImage 2s; 
 
} 
 

 
#thumb-image { 
 
    list-style: none; 
 
    overflow: auto; 
 
} 
 

 
#thumb-image img { 
 
    width: 50px; 
 
    height: 50px; 
 
    float: right; 
 
    margin-left: 5px; 
 
    border: 1px solid #ffffff; 
 
    opacity: 0.5; 
 
} 
 

 
#thumb-image img:hover { 
 
    opacity: 1; 
 
} 
 

 
#thumb-image li { 
 
    position: relative; 
 
} 
 

 
@-webkit-keyframes slideImage { 
 
    0% {left:-700px;} 
 
    100% {left:0px;} 
 
} 
 

 
@-moz-keyframes slideImage { 
 
    0% {left:-700px;} 
 
    100% {left:0px;} 
 
} 
 

 
@keyframes slideImage { 
 
    0% {left:-700px;} 
 
    100% {left:0px;} 
 
}
<body> 
 
    <h1 id="title">Image Gallery</h1> 
 
    <div id="mygallery"> 
 
     <ul id="full-image"> 
 
      <li id="desert"> 
 
       <img src="http://www.imgworlds.com/wp-content/themes/IMG/img/phase3/welcome/trex.png" alt="desert"/> 
 
       <p><span>Desert</span></p> 
 
      </li> 
 
      <li id="koala"> 
 
       <img src="http://www.apicius.es/wp-content/uploads/2012/07/IMG-20120714-009211.jpg" alt="koala"> 
 
       <p><span>Koala</span></p> 
 
      </li> 
 
      <li id="lighthouse"> 
 
       <img src="http://www.imgworlds.com/wp-content/uploads/2015/12/18-CONTACTUS-HEADER.jpg" alt="lighthouse"> 
 
       <p><span>Lighthouse</span></p> 
 
      </li> 
 
      <li id="penguins"> 
 
       <img src="https://pbs.twimg.com/profile_images/378800000017423279/1a6d6f295da9f97bb576ff486ed81389_400x400.png" alt="penguins"> 
 
       <p><span>Penguins</span></p> 
 
      </li> 
 
     </ul> 
 
     <ul id="thumb-image"> 
 
      <li> 
 
       <a href="#desert"> 
 
       <img src="http://www.apicius.es/wp-content/uploads/2012/07/IMG-20120714-009211.jpg" alt="desert"> 
 
       </a> 
 
      </li> 
 
      <li> 
 
       <a href="#koala"> 
 
       <img src="http://www.imgworlds.com/wp-content/themes/IMG/img/phase3/welcome/trex.png" alt="koala"> 
 
       </a> 
 
      </li> 
 
      <li> 
 
       <a href="#lighthouse"> 
 
       <img src="http://www.apicius.es/wp-content/uploads/2012/07/IMG-20120714-009211.jpg" alt="lighthouse"> 
 
       </a> 
 
      </li> 
 
      <li> 
 
       <a href="#penguins"> 
 
       <img src="http://www.imgworlds.com/wp-content/uploads/2015/12/18-CONTACTUS-HEADER.jpg" alt="penguins"> 
 
       </a> 
 
      </li> 
 
     </ul> 
 
    </div> 
 
</body>

+0

je vais écrire la même réponse .... Ceci est la bonne OP. – Hamzaouiii

+0

@Hamzaouiii, ressemble à ça, merci;) –

+1

dieu @CommercialSuicide vous bénisse mon bon monsieur! –

1

utilisation! Important de passer outre le style. Cela peut fonctionner

+0

douteuse c'est la solution. Je ne pense pas que cela affecterait directement les images clés pour autant que je sache. Comme il n'y a rien à "déroger". –

1

Eh bien, si le problème serait les marges, essayez ceci:

div { 
    -ms-transform: translate(50px, 100px); /* IE 9 */ 
    -webkit-transform: translate(50px, 100px); /* Safari */ 
    transform: translate(50px, 100px); 
} 

où le premier paramètre de la fonction translate() est le décalage x, et le second le décalage y. Si cela ne fonctionne pas, alors vous savez au moins les marges ne sont pas le problème ^^