begin process at 2012 05 30 04:24:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

texte qui DEVRAIT faire le tour de la fenêtre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

texte qui DEVRAIT faire le tour de la fenêtre

lundi 3 juillet 2006 à 13:51:21 | texte qui DEVRAIT faire le tour de la fenêtre

Nitruk

Voila, je cherche à faire un script qui permettrait à un paragraphe de faire le tour de sa fenêtre du navigateur. Pour l'instant, il sagit d'un simple "brouillon" que je travaille phase par phase et qui est intégré à la page html. J'en suis à la 1ère phase, le déplacement de gauche à droite, et déjà je bute sur plusieurs difficultés. Voici ma page :

<html>
  <head>
    <title>Création d'un site web en html et javascript</title>
    <style>
      <!--
        #texte{
          position: absolute;
          top: 100px;
          left: 50px;
          font-size: 30px;
          font-family: arial;
          font-weight: bold;
        }
      //-->
    </style>
    <script language="Javascript">
      isNetscape4 = document.layers;
      isNetscape6 = document.getElementById && !document.all
      dhtml = document.getElementById || document.all || document.layers;
      abscisse = 50;
      ordonnee = 100;
      function getStyle(nom) {
        if (isNetscape6)
          var style = document.getElementById(nom).style;
        else if (isNetscape4)
          var style = document.layers[nom];
        else
          var style = document.all[nom].style;
         return(style)
        }
      function largeur() {
        retourLigne = "<br />";
        temp = "";
        indmax = 0;
        indice = texte.indexOf(retourLigne);
        while(indice != -1){
          if indice > indmax indmax = indice;
          temp = texte.substr(indice + retourLigne.length);
          indice = temp.indexOf(retourLigne);
          }
        indice = texte.lasIndexOf(retourLigne);
        temp = text.substr(indice + retourLigne.length);
        if temp.length > indmax indmax = temp.length;
        return(indmax);
        }
      function moveText() {
        if (!dhtml)
          return;
        var absmax = screen.availWidth - largeur() * getStyle('texte').font-size);
        while (getStyle('texte').left < absmax) {
          abscisse ++;
          setTimeout("getStyle('texte').left = abscisse",500);
          }
        abscisse = 500;
        getStyle('texte').left = abscisse;
        moveText();
        }
    </script>
  </head>
  <body onload="moveText()">
    <div id="texte">
      Ce site sans theme particulier est un exercice et un<br />
      entraînement à la production en javascript. Toutes vos<br />
      idées pour son développement sont les bienvenues.
    </div>
  </body>
</html>

Mes problémes sont les suivants :
- Je ne sais pas comment désigner la chaîne de caractère contenue entre les balises <div id="texte"></div>, que j'ai ici nommée simplement texte ("texte.indexOf(retourLigne)" par exemple).
- Je ne sais pas s'il existe un moyen plus simple d'obtenir la largeur d'une chaine en pixels.
-Le navigateur qui lit cette page me déclare une erreur à la ligne 60 "<body onload="moveText()">" en signalant qu'un objet est attendu. J'ai déjà rencontré cette erreur en oubliant de fermer des parenthèses, des guillemets, une balise ou encore des accolades, mais après plusieurs vérifications, je ne trouve pas ici quelle en est la cause.

  En vous remerciant par avance de votre aide

Nitruk
lundi 3 juillet 2006 à 14:43:46 | Re : texte qui DEVRAIT faire le tour de la fenêtre

bultez

Membre Club




bonjour,

   des erreurs de syntaxe :

   if a==1 s'écrit if ( a==1 ) 
   lasindexOf=lastIndexOf
   font-size=fontSize ...

   le contenu du div : document.getElementById("texte").innerHTML.

   getStyle quasi inutile
      document.getElementById('texte').style.fontSize ça baigne pour presque tout

bref, avec FireFox : regarder la console JavaScript,
      avec Internet Explorer : activer le debogger
ça donne toutes ( ou presque ) les erreurs.

sans préjuger de la logique du script...

cordialement   Bul
Site
lundi 3 juillet 2006 à 18:21:36 | Re : texte qui DEVRAIT faire le tour de la fenêtre

Nitruk

Merci infiniment. Je sais maitenant ce qui me manquait, mais je ne trouve toujours pas pourquoi le navigateur déclare une erreur à ce qui est devenu la ligne 51 de ma page qui donne maintenant :

<html>
  <head>
    <title>Création d'un site web en html et javascript</title>
    <style>
      <!--
        #texte{
          position: absolute;
          top: 100px;
          left: 50px;
          font-size: 30px;
          font-family: arial;
          font-weight: bold;
        }
      //-->
    </style>
    <script language="Javascript">
      isNetscape4 = document.layers;
      isNetscape6 = document.getElementById && !document.all;
      dhtml = document.getElementById || document.all || document.layers;
      abscisse = 50;
      ordonnee = 100;
      function largeur() {
        retourLigne = "<br />";
        temp = "";
        indmax = 0;
        indice = document.getElementById("texte").innerHTML.indexOf(retourLigne);
        while(indice != -1){
          if(indice > indmax) indmax = indice;
          temp = document.getElementById("texte").innerHTML.substr(indice + retourLigne.length);
          indice = temp.indexOf(retourLigne);
          }
        indice = document.getElementById("texte").innerHTML.lastIndexOf(retourLigne);
        temp = document.getElementById("texte").innerHTML.substr(indice + retourLigne.length);
        if(temp.length > indmax) indmax = temp.length;
        return(indmax);
        }
      function moveText() {
        if (!dhtml)
          return;
        var absmax = screen.availWidth - largeur() * document.getElementById('texte').style.fontSize);
        while (getStyle('texte').left < absmax) {
        abscisse ++;
        setTimeout("document.getElementById('texte').style.left = abscisse",500);
        }
      abscisse = 50;
      document.getElementById('texte').style.left = abscisse;
      moveText();
      }
    </script>
  </head>
  <body onload="moveText()">
    <div id="texte">
      Ce site sans theme particulier est un exercice et un<br />
      entraînement à la production en javascript. Toutes vos<br />
      idées pour son développement sont les bienvenues.
    </div>
  </body>
</html>

Nitruk
mardi 4 juillet 2006 à 05:16:30 | Re : texte qui DEVRAIT faire le tour de la fenêtre

bultez

Membre Club
le debugger n'est toujours pas activé (ie) ?
et que dit la console javascript (ff,opera) ?

        var absmax = screen.availWidth - largeur() * document.getElementById('texte').style.fontSize);

le ) est en trop, ou alors il manque une (.

il restera à régler les problèmes de logique
( et c'est plus difficile ! )

cordialement   Bul   
Site
mardi 4 juillet 2006 à 10:39:35 | Re : texte qui DEVRAIT faire le tour de la fenêtre

Nitruk

Quand je dis que le navigateur me déclare un objet attendu à la ligne 41, c'est bien du debugger d'internet explorer qu'il s'agit. Merci en tout cas pour cette correction supplémentaire.

Nitruk
mardi 4 juillet 2006 à 11:10:55 | Re : texte qui DEVRAIT faire le tour de la fenêtre

Nitruk

Suite à votre question j'ai téléchargé et installé firefox dont la console javascript me déclare :
1- Erreur : Sélecteur attendu.  Jeu de règles ignoré suite à un mauvais sélecteur.
    Fichier source : file:///C:/projet/index.html                                Ligne : 14
2- Erreur : Fin de fichier inattendue durant la recherche de Fermeture } d'un jeu de règles invalide.
     Fichier source : [ Lien ] : 15

         Ces 2 premières erreurs concernent la déclaration du style de #texte :

    <style>
      <!--
        #texte{
          position: absolute;
          top: 100px;
          left: 50px;
          font-size: 30px;
          font-family: arial;
          font-weight: bold;
          }
      //-->
    </style>

Apparemment le navigateur ne trouve pas l'accolade de fermeture.

3- Erreur : too much recursion
     Fichier source : file:///C:/projet/index.html                                Ligne : 40

Celle-ci désigne la ligne :
        var absmax = screen.availWidth - largeur() * document.getElementById('texte').style.fontSize;
mais je ne comprends pas pas ce que la console entend par là

Nitruk
mardi 4 juillet 2006 à 11:20:59 | Re : texte qui DEVRAIT faire le tour de la fenêtre

bultez

Membre Club

en CSS, les commentaires c'est /*commentaires*/
pas <!-- -> qui est un commentaire en html.
( pas d'erreur avec IE, mais FF n'aime pas )

Erreur : too much recursion ( avec FF )
entre d'autres temps on aurait dit : boucle do infernale.
( une boucle dont on ne sort jamais,
   je parlais de régler les problèmes de logique )

cordialement   Bul   
Site
mardi 4 juillet 2006 à 12:03:09 | Re : texte qui DEVRAIT faire le tour de la fenêtre

bultez

Membre Club
au fait...
>>Suite à votre question j'ai téléchargé et installé firefox
   ma question ne valait que si vous testiez sous FF !
   mais ça ne fait pas de mal d'y tester ses script.
cordialement   Bul   
Site
mardi 4 juillet 2006 à 13:33:13 | Re : texte qui DEVRAIT faire le tour de la fenêtre

Nitruk

Merci encore, mais la ligne concernée n'appartient pas à un boucle. Par contre, une boucle while commence à la ligne suivante, mais je ne vois pas en quoi  elle est infernale :

var absmax = screen.availWidth - largeur() * document.getElementById('texte').style.fontSize; -> ligne concernée par l'erreur
while (document.getElementById('texte').style.left < absmax) {
  abscisse ++;
  setTimeout("document.getElementById('texte').style.left = abscisse",500);
  }

Nitruk
mardi 4 juillet 2006 à 13:36:44 | Re : texte qui DEVRAIT faire le tour de la fenêtre

Nitruk

En ce qui concerne le commentaire, il s'agit d'une précaution pour la compatibilité internavigateurs. Elle est inutile dans ce cas ci car ma page n'a pas de raison d'être sans le dhtml, mais pour un navigateur qui ne comprend pas les css, une balise commentaire permet d'eviter les erreurs de lecture, tandis les commentaires html sont ignorés par les autres navigateurs.

Nitruk

1 2 3 4

Cette discussion est classée dans : texte, style, document, indice, retourligne


Répondre à ce message

Sujets en rapport avec ce message

appel de fonction qui marche pas [ par Totofweb ] Bonjour J'ai un script dans lequel un fonction doit etre executee dans une autre => showtip2(...);Je voudrais qu'en plus, un des parametre contenu z-index [ par MiTcH37 ] buenos dias...j'aimerai savoir comment modifier le z-index d'une div par le javascript...par exemple pour la hauteur c'est :document.all.NomDiv.style. appliquer plusieurs styles CSS sur une cellule d'un tableau [ par zizou100679 ] sur une balise TD je voudrais appliquer plusieurs styles provenant d'une feuille de style. on va appeler cssGras un style qui met la police en gras, c rollvover sur img [ par gesualda ] Bonjour à tous,j'ai testé ce code pour faire un rollover sur une image ..Tous fonctionne jusqu'au block4, et ensuite il ne donne aucune erreur, mais n Comment Griser pleins de controles (checkbox) en une boucle ??? [ par SnowAngeL ] je fais une fonction avec une boucle pour griser des controles d'un formulaire, c'est utile et moins long à charger quand on a 50 controles à griser.. Probléme entre deux scripts [ par massacr ] Bonjour, Je veux mettre deux scripts dans ma page.L'un est un effet de texte déroulant, l'autre est un effet d'ouverture de message au chargement de l Passage de variable entre fenetres... [ par baddack ] J'ai deux fentres et je veux envoyer des infos de l'une a l'autre!!Par exemple si je click sur un lien de la fenetre1, appeler une fonction du genre : Apliquer une feuille de style sur un texte d'un JavaScript [ par Siriusgalaxie26 ] Comment faire pour appliquer avec Dreamweaver MX une feuille de style sur un texte affiché par "document.write" ?SIRIUSVisitez le site http://mypage.b acces bouton [ par ben1 ] je suohaiterai vérifier que mes boutons sont bien actifs par .checked mais apparament ce ne fonctionne pas vraiment ... pourriez-vous m'aider?voici le javascript bouton checked function [ par ben1 ] je suohaiterai vérifier que mes boutons sont bien actifs par .checked mais apparament ce ne fonctionne pas vraiment ... pourriez-vous m'aider?> > voic


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales