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 DHTML / Javascript dans page XHTML


Sujet :

JavaScript

  1. #1
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut Animation DHTML / Javascript dans page XHTML
    Bonjour,

    Je voudrais intégrer une animation DHTML / Javascript au sein de mon site valide en XHTML 1.1, animation issue du site dhteumeuleu.

    Code xhtml : 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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    <html>
    <head>
    <title>issues - Interactive DHTML art-demos</title>
    <meta name="Author" content="Gerard Ferrandez at http://www.dhteumeuleu.com">
    <meta http-equiv="imagetoolbar" content="no">
    <style type="text/css">
        body {cursor:crosshair;margin:0; padding:0; position:absolute; overflow:hidden; background:#000; left:0; top:0; width:100%; height:100%;}
        span {position:absolute;font-family: verdana; font-weight: bold;}
    </style>
     
    <script type="text/javascript"><!--
    // =====================================================================
    // script: Gerard Ferrandez - Ge-1-doot - March 2004
    // http://www.dhteumeuleu.com
    // =====================================================================
     
    T    = "What is  real?How do you define real?   Ifyou're talkingabout what youcan feel  whatyou can  smellwhat  you  cantaste and  seethen   real issimply   electrical  signalsinterpreted byyour brain!        ";
    I    = 0;
    o    = new Array();
    xm   = -1000;
    ym   = -1000;
    ///////////////
    rad  = 80;
    dim  = 200;
    ///////////////
    W    = 0;
    H    = 0;
    NX   = 14;
    NY   = 14;
    var nx;
    var ny;
     
    document.onmousemove = function(e){
        if (window.event) e = window.event;
        xm = (e.x || e.clientX) - (nx  * .5) + dim * .5;
        ym = (e.y || e.clientY) - (ny * .5) + dim * .5;
    }
     
    function resize() {
        nx = document.body.offsetWidth;
        ny = document.body.offsetHeight;
    }
    onresize = resize;
     
    function CObj(N,i,j,c){
        this.obj = document.createElement("span");
        this.obj.innerHTML = c;
        DOOT.appendChild(this.obj);
        this.N    = N;
        this.To   = 16;
        this.x0   = i*2*W;
        this.y0   = j*2*H;
        this.anim = true;
     
        this.mainloop = function(){
            with (this) {
                 dx   = xm - x0;
                dy   = ym - y0;
                dist = Math.sqrt(dx * dx + dy * dy);
                if (dist < rad) {
                    anim = true;
                    M    = Math.cos(.5 * Math.PI * Math.abs(dist / rad));
                    c    = Math.round(84 + M * 171);
                    with(obj.style){
                        left     = x0 - dx * M;
                        top      = y0 - dy * M;
                        zIndex   = Math.round(100 + M);
                        fontSize = 8 + M * W * 2;
                        color    = "RGB("+c+","+c+","+c+")";
                    }
                } else {
                    if(anim){
                        with(obj.style){
                            left     = x0;
                            top      = y0;
                            zIndex   = 0;
                            fontSize = 8;
                            color    = "RGB(88,88,88)";
                        }
                    anim = false;
                    }
                }
            }
        }
    }
    function run(){
        for(i in o)o[i].mainloop();
        setTimeout(run,16);
    }
     
    onload = function (){
        DOOT = document.getElementById("doot");
        with(DOOT.style){
            left = -dim/2;
            top  = -dim/2;
            width = dim;
            height = dim;
        }
        resize();
        W = (dim  / NX) / 2;
        H = (dim / NY) / 2;
        K = 0;
        for(var j=0;j<NY;j++){
            for(var i=0;i<NX;i++){
                c=T.charAt((I++)%T.length).toUpperCase();
                if(c==" ")c="·";
                o[K] = new CObj(K++,i,j,c);
            }
        }
        run();
    }
    //-->
    </script>
    </head>
     
    <body>
    <span style="position:absolute;left:50%;top:50%">
        <span id="doot"></span>
    </span>
     
    </body>
    </html>
    Désolé pour la longueur du code...

    Après plusieurs tentatives, je pense que le problème vient à cause du DocType que j'utilise qui fais "foirer" l'animation (car dans l'exmple donné seul la balise <html> est déclaré).

    Ma question : Est-il possible d'insérer au sein d'une page valide en XHTML 1.1 cette animation ? Si oui, comment ?

    Merci à qui me répondra...

  2. #2
    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 143
    Points
    11 143
    Par défaut
    bonjour,

    c'est effectivement le doctype qui a une influence en particulier sur ces fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    document.onmousemove = function(e){
    	if (window.event) e = window.event;
    	xm = (e.x || e.clientX) - (nx  * .5) + dim * .5;
    	ym = (e.y || e.clientY) - (ny * .5) + dim * .5;
    }
     
    function resize() {
    	nx = document.body.offsetWidth;
    	ny = document.body.offsetHeight;
    }
    en fonction du doctype, les valeurs retournées ne seront pas les mêmes.


    Tu peux mettre à jour ton code en intégrant ce script pour déterminer la position de la souris.

  3. #3
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    Merci Auteur pour ta réponse, je testerai ce script sous peu.

    Donc Il permettrait que les caractères du texte sensé s'afficher (What is real?How do you define real? Ifyou're talkingabout etc...) ne se superpose pas les uns aux autres ?
    (Si tu as eu le temps de tester le code donné sous un DocType XHTML 1.0/1.1)

  4. #4
    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 143
    Points
    11 143
    Par défaut
    J'ai testé sans doctype : cela donne un effet loupe au texte affiché au centre de la page...
    Ta souris survole un caractère dans un span et les caractères dans les span environnants (tout en formant un cercle) sont agrandis.

    Surprenant !!

  5. #5
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    En effet, l'ensemble des animations disponibles sur dhteumeuleu sont plutôt sympathiques, je fut surpris par les possibilités montrées. D'où le fait que je veuille l'intégrer sur mon site personnel.

  6. #6
    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 143
    Points
    11 143
    Par défaut
    j'ai regardé les différents scripts, la plupart ont le doctype
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    or (sans doute à cause des doctype justement), le script que tu as choisis n'a pas de doctype défini , pour l'insérer dans ta page cela ne va pas être évident ou alors utilise le même procédé que le site à savoir que les exemples sont placés dans des <iframe>, la page parent ayant un doctype XHTML 1.1.

  7. #7
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    En effet, j'avais vu que celui que je voulais n'avais pas de DocType à l'inverse de bcp d'exemples sur le site qui en ont... (pas de chance d'avoir choisit celui là quoi )

    Je en sais pas trop encore si je vais intégrer des iframe, je verrais en temps voulu.
    En tout cas, merci pour tes réponses Auteur

  8. #8
    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 143
    Points
    11 143
    Par défaut
    Sinon tu peux refaire le script à ta sauce

    J'ai une vague idée sur un script qui n'utiliserait pas la position de la souris pour réaliser cet effet loupe...

  9. #9
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    Malheureusement, j'ai peur de manquer de connaissances en Javascript et surtout de temps pour m'y atteler...

    Si malgré tout l'envi te prend de tenter avec un DocType / Taille défini (genre dans un div en 250x250) / JS maison pour réaliser ce que je cherché à faire, je suis toujours preneur

    Pour ma part, cela va passer au second plan, l'intérêt pour le moment étant d'avancer sur les pages qui vont constituer mon site afin d'évaluer la charge de travail qu'il me restera à faire.
    L'endroit ou je voulais placer l'animation a été remplacé par une image en attendant...

    Néanmoins, je retournerai sur le problème très bientôt (pas du genre à lâcher l'affaire)

Discussions similaires

  1. javascript dans page JSP ET Passage de parametres
    Par sami117 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 02/06/2009, 10h26
  2. Code javascript dans page asp
    Par youyou2011 dans le forum ASP
    Réponses: 6
    Dernier message: 06/01/2008, 15h07
  3. [Prototype] JavaScript dans page AJAX
    Par brazilia28 dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 03/01/2008, 11h50
  4. [PHP-JS] Javascript dans page d'appel php
    Par Myfred dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/02/2007, 11h11
  5. [XHTML] Insérer script Javascript dans document XHTML
    Par kingmandrax dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 29/09/2006, 15h37

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