IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Rotate/translate dans un keyframe pour retour à l'état initial [CSS 3]


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Rotate/translate dans un keyframe pour retour à l'état initial
    Bonne année à tous

    Je déplace un objet, je lui fait faire une rotation puis je veux le remettre à son emplacement de départ.

    Voici le keyframe que j'ai fait qui fonctionne bien avec Chrome :
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @keyframes deplacement {
      0%   { left: 50%; top: 30em; }
      10%  { transform: rotate(0deg) translate(20em,0em) rotate(0deg); }
      90%  { transform: rotate(360deg) translate(20em,0em) rotate(-360deg); }
      100% { transform: translate(0em,0em); }
    }

    C'est bien ce keyframe qui est aussi utilisé par Safari mais dans ce cas la rotation ne se fait pas ...

    Voici un autre test qui fait bien la rotation avec Chrome et Safari. Mais dans ce cas, l'objet ne revient pas à l'endroit initial en ligne droite mais en faisant une sorte de rotation inversée ...
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @keyframes deplacement {
      0%   { left: 50%; top: 30em; }
      10%  { transform: rotate(0deg) translate(20em,0em) rotate(0deg); }
      90%  { transform: rotate(360deg) translate(20em,0em) rotate(-360deg); }
      100% { left: 50%; top: 30em; }
    }

    Avez-vous une idée de la source de ces problèmes ?
    Merci d'avance.
    Dernière modification par NoSmoking ; 04/01/2016 à 17h40. Motif: Suppression mot problème dans titre + ajout préfixe

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 228
    Par défaut
    Bonjour,
    sans avoir la structure HTML et le CSS de départ il va être difficile de t'aider.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Voici le code complet qui n'a rien d'important (c'est juste mon avis) :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE html>
    <html>
      <head>
        <title>Test</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0" />
        <style>
    .image {
      width: 128px;
      height: 128px;
      background-image: url(./image.png);
      position: absolute;
      left: 50%;
      top: 30em;
      animation: deplacement 10s linear infinite;
    }
     
    /*
    @keyframes deplacement {
      0%   { left: 50%; top: 30em; }
      10%  { transform: rotate(0deg) translate(20em,0em) rotate(0deg); }
      90%  { transform: rotate(360deg) translate(20em,0em) rotate(-360deg); }
      100% { transform: translate(0em,0em); }
    }
    */
     
    @keyframes deplacement {
      0%   { left: 50%; top: 30em; }
      10%  { transform: rotate(0deg) translate(20em,0em) rotate(0deg); }
      90%  { transform: rotate(360deg) translate(20em,0em) rotate(-360deg); }
      100% { left: 50%; top: 30em; }
    }
        </style>
      </head>
      <body>
        <div class="image"></div>
      </body>
    </html>

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 228
    Par défaut
    C'est bien ce keyframe qui est aussi utilisé par Safari mais dans ce cas la rotation ne se fait pas ...
    de quel SAFARI parles tu, si c'est celui sous windows il te faut ajouter le préfixe propriétaire -webkit-.

    Comme tu définis left: 50%; top: 30em, il est inutile de les mettre au stade 0%.

    Au final je ferais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @-webkit-keyframes deplacement {
      10%  { -webkit-transform: rotate(  0deg) translate(20em,0em) rotate(   0deg); }
      90%  { -webkit-transform: rotate(360deg) translate(20em,0em) rotate(-360deg); }
      100% { -webkit-transform: rotate(360deg) translate( 0em,0em) rotate(-360deg); }
    }
    @keyframes deplacement {
      10%  { transform: rotate(  0deg) translate(20em,0em) rotate(   0deg); }
      90%  { transform: rotate(360deg) translate(20em,0em) rotate(-360deg); }
      100% { transform: rotate(360deg) translate( 0em,0em) rotate(-360deg); }
    }
    en mettant dans les propriétés image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .image {
      -webkit-animation: deplacement 10s linear infinite;
              animation: deplacement 10s linear infinite;
    }
    mais sous réserve qu'il s'agisse de Safari Windows, plus franchement utilisé

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Comme tu définis left: 50%; top: 30em, il est inutile de les mettre au stade 0%.
    C'est bon à savoir

    Au final c'est la modification de cette ligne qui a corrigé le problème.
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    100% { transform: rotate(360deg) translate(0em,0em) rotate(-360deg); }

    Il s'agissait de Safari sous OSX

    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec le type BLOB dans oracle
    Par pguedia dans le forum Oracle
    Réponses: 1
    Dernier message: 10/11/2005, 18h33
  2. [CSS]problème centrage texte de bouton dans une boîte
    Par Aurelius dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 06/09/2005, 17h01
  3. Css, problème avec Ie
    Par punkks dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 05/04/2005, 10h12
  4. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 16h30
  5. problème avec masque de saisie dans table
    Par porki dans le forum Access
    Réponses: 6
    Dernier message: 13/10/2004, 09h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo