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

JavaScript Discussion :

Animation en javascript/css à paramétrer


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 155
    Points : 94
    Points
    94
    Par défaut Animation en javascript/css à paramétrer
    Bonjour,
    je viens de créer une petite animation qui marche très bien...
    que voici:
    Code : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <!DOCTYPE html>
     
    <html lang="fr">
    <head>
     
    <style> 
    .stylebox
    {
    	width:100px;
    	height:40px;
    	color:#ffffff;
    	position:relative;
    	font-weight:bold;
    	font-size:15px;
    	padding:10px;
    	float:left;
    	margin:20px;
    	margin-right:50px;
    	border:1px solid #888888;
    	border-radius:10px;
    }
     
    #mabox
    {
    border:5px solid #000000;
    background:green;
    margin:10px;
    opacity:0.7;
    }
     
    </style>
     
     
    <script>
    var zebox,zeangle=0,zeevent
     
    function boxTransform()
    {
    	clearInterval(zeevent)
    	zeevent=setInterval("startTransform('skew')",1)
    }
     
     
    function startTransform(funct)
    {
    	box=document.getElementById("mabox")
    	zeangle=zeangle+2
    	box.style.transform=funct+"(" + zeangle + "deg)"
    	if (!(zeangle%180)) //arret sur un demi-tour!
    	{
    		clearInterval(zeevent) 	
    	}
    	zeangle %=360;
    }
     
     
     
    </script>
    </head>
    <body > 
     
    <div style="height:80px;">
    	<div onclick="boxTransform()" id="mabox" class="stylebox">Oulalalala</div>
    </div>
     
    </body>
    </html>
    je souhaite maintenant chopper le parametre event! dans la fonction...

    donc logiquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	zeevent=setInterval("startTransform(zeevent,'skew')",1)
    ...
             function startTransform(event, funct)
    ....
             clearInterval(event)
    hors ca ne semble pas fonctionner, le event n'est pas le zeevent...
    ce qui me parait logique de ce point de vue... puisqu'on passe par une transformation de string, et les paramètres doivent y passer à la semoule...
    donc je pensais utiliser un Array avec des indices et gérer une fonction evenementielle qui testerait la destruction des evenements....
    mais avant, je voulais être sûr qu'il n'y a pas un moyen de transmettre une variable de cette facon... merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bonjour,

    Avant d'aller plus loin quelques bonnes pratiques pour les animations DOM:
    - utiliser les transformations CSS lorsque c'est possible
    - utiliser requestAnimationFrame plutôt que setInterval ou setTimeout
    - passer des fonctions plutôt que des String en instructions, un setInterval(string) équivaut à un eval, déprécié pour ses performances et son manque de lisibilité

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 155
    Points : 94
    Points
    94
    Par défaut
    Bonjour Sylvain,

    Merci pour ta réponse.

    Effectivement pour rAF je viens de regarder, ça semble être mieux d'après des tas d'articles sur le net.
    Pour les fonctions à passer, ce n'est pas encore ma tasse de thé en JavaScript, j'y vais au fur et à mesure.
    Pour les transformations CSS... c'est déjà ce que j'utilise, non ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Je voulais dire transition CSS, pas transformation. Là tu réattribues les propriétés CSS à chaque intervalle de temps par un timer Javascript. Il est possible d'optimiser et de simplifier les animations pour passer d'un état CSS à un autre, exemple dans les cours et tutoriels pour apprendre CSS : http://css.developpez.com/cours/

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    event est un objet javascript... Pourquoi un clearInterval ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 155
    Points : 94
    Points
    94
    Par défaut
    Pour libérer le timer?
    BOn sinon, maintenant ca marche mieux avec RaF... merci!

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    Citation Envoyé par §Gama§ Voir le message
    Pour libérer le timer?
    BOn sinon, maintenant ca marche mieux avec RaF... merci!
    event est un objet natif de javascript pas une variable !!

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par Auteur Voir le message
    event est un objet natif de javascript pas une variable !!
    Absolument pas, event est un argument de sa fonction et donc bel et bien une
    variable. En revanche il porte mal son nom car associé à un timer (retour de setInterval), il ne s'agit donc pas d'un objet Event.

    Au passage, il faut penser à mettre le mot-clé var devant la déclaration de variables, sinon elles sont déclarées dans le scope global (window) ce qui peut causer de nombreuses confusions.

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

Discussions similaires

  1. [Javascript][CSS]Documentation Cross browser
    Par ld9474 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/11/2005, 16h23
  2. Probleme d'affichage sour firefox de code javascript css
    Par pod1978 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/10/2005, 13h09
  3. [DEBUTANT][Javascript + CSS]Modification du background
    Par picomz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2005, 22h32
  4. Passage d'un tableau javascript en paramètres d'une URL
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 02/09/2005, 10h46
  5. Récupérer une variable --> Javascript+CSS
    Par Skarlix dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/08/2005, 16h01

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