IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Divers
        Générateur de grille de sudoku
        Gérer le scroll comme des pages
        Calendrier annuel
        Faire defiler les colonnes d'une Table HTML
        Faire défiler du texte lettre par lettre (Effet machine à écrire)
        Tester si on est connecté à internet
        Changer dynamiquement une règle de style dans la CSS

rechercher
precedent    sommaire       telecharger


Auteur : javatwister
Version : 04/01/2006
Générateur de grille de sudoku
function ordre (a,b){return a-b}

function sudoku(){

   var l=new Array();
   var c=new Array();
   var zon=new Array();

   for(i=0;i<9;i++){
      l[i]=new Array();
      c[i]=new Array();   
      zon[i]=new Array();
   }

   var tour=0;

   for(i=0;i<9;i++){

      for(j=0;j<9;j++){

         if(i<3 && j<3){cas=0}
         if(i<3 && j>2 && j<6){cas=1}
         if(i<3 && j>5){cas=2}
         if(i>2 && i<6 && j<3){cas=3}
         if(i>2 && i<6 && j>2 && j<6){cas=4}
         if(i>2 && i<6 && j>5){cas=5}
         if(i>5 && j<3){cas=6}
         if(i>5 && j>2 && j<6){cas=7}
         if(i>5 && j>5){cas=8}

         var choix="123456789";
         var chainel=l[i].join('');
         var chainec=c[j].join('');
         var chainez=zon[cas].join('');

         var choix2=chainel+chainec;
         choix2=choix2.split('');
         choix2.sort(ordre);
         choix2=choix2.join('');
            for(k=1;k<choix2.length;k++){
               if(choix2.charAt(k)==choix2.charAt(k-1)){
                  choix2=choix2.replace(choix2.charAt(k),"");
               }      
            };

         var choix3=choix2+chainez;
         choix3=choix3.split('');
         choix3.sort(ordre);
         choix3=choix3.join('');
            for(k=1;k<choix3.length;k++){
               if(choix3.charAt(k)==choix3.charAt(k-1)){
                  choix3=choix3.replace(choix3.charAt(k),"");
               }      
            };

         var lng=choix.length;
            for(k=0;k<lng;k++){   
               for(z=0;z<choix3.length;z++){
                  if(choix.charAt(k)==choix3.charAt(z)){
                     choix=choix.replace(choix3.charAt(z),"");
                  }   
               };
            };

         var h=Math.floor(Math.random()*choix.length);

         l[i].push(choix.charAt(h));
         c[j].push(choix.charAt(h));
         zon[cas].push(choix.charAt(h));
      }

      if(!/^\d{9}$/.test(l[i].join(''))){
         if(tour<20){
            tour++
         }
         else{
            break
         };

         l[i].splice(0,9);
         for(w=0;w<9;w++){
            c[w].pop();
         };
         for(w=0;w<3;w++){
            zon[cas].pop();
            zon[cas-1].pop();
            zon[cas-2].pop();
         };
         i--;
      }
   };

   if(zon[8].length==9){
      alert(l.join().replace(/,/g,"").replace(/(\d{9})/g,"$1\n"))
   }
   else{
      sudoku()
   }
}


sudoku()

Auteur : siddh
Version : 04/01/2006
Gérer le scroll comme des pages
Ce script permet de gérer des "pages".
Quand vous avez une page avec du scroll, ca va calculer combien de pages vous pouvez afficher dans la partie visible de votre browser et mettre des liens ainsi que le Page x/y.

Ca fonctionne sur ie et firefox, j'ai pas testé les autres.
<html>
   <head>
      <title> Multipages </title>
      <style type='text/css' media="screen">
         #menuPages{
            position: fixed !important;
            position: absolute;
            z-index: 1000;
         }
         #menuPages ul{
            display: inline;
         }
         #menuPages li{
            list-style-type: none;
            display: inline;
            margin: 10px;
         }
         #menuPages a{
            text-decoration: none;
         }
         /* Span contenant les "Page x/y" */
         .numPages{

         }
      </style>
      <script type='text/javascript'>
         window.onload = function(){
               var vis,wid
               d = document.getElementById('toto');
                   
               if(self.innerHeight){
                  wid =self.innerWidth;
                  vis =self.innerHeight;
               }
          else if (document.documentElement && document.documentElement.clientHeight){
        wid = document.documentElement.clientWidth;
        vis = document.documentElement.clientHeight;

           }
               else if (document.body){
                  wid = document.documentElement.scrollWidth;
                  vis = document.documentElement.scrollHeight;
               }                 
               haut = document.body.scrollHeight;
               
               nbPages = Math.round(haut/vis);
               
               menu = document.createElement("ul");
               thediv = document.createElement("div");
               thediv.id = "menuPages";
               thediv.style.top = "0px";
               thediv.style.left = "0px";

               for(i=0;i<nbPages;i++){
                   
                  pos = 0+i*vis;
                  page = i+1;
                  sp = document.createElement("span");
                  sp.appendChild(document.createTextNode("Page "+page+"/"+nbPages));
                  sp.style.position = "absolute";
                  sp.style.top = String(pos+vis-25)+"px";
                  sp.style.left= String(wid-100)+"px";
                  sp.className = "numPages";
                  document.body.appendChild(sp);

                  mitem = document.createElement("li");
                  lien = document.createElement("a");
                  lien.href="#";
                  lien.name= String(pos);
                  lien.onclick = function(){
                     document.body.scrollTop = parseInt(this.name);
                     return false;
                  }
                  lien.appendChild(document.createTextNode(String(page)));

                  mitem.appendChild(lien);
                  menu.appendChild(mitem);
               }
                  thediv.appendChild(document.createTextNode("Pages : "));
                  thediv.appendChild(menu);
                  document.body.appendChild(thediv);
                  window.onscroll = function(){
                     document.getElementById('menuPages').style.top = document.body.scrollTop + "px";
                  }
         }
      </script>
   </head>
   <body>
      <div id='toto' style='height: 2500px'></div>
   </body>
</html>

Auteur : javatwister
Version : 04/01/2006
Calendrier annuel
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Calendrier</title>

<style type="text/css">
body {margin:0px}
#af {margin-left:auto;margin-right:auto;text-align:center}
#af1, #af2 {clear:left;text-align:center;font-weight:bold;font-size:15px}
strong {color:#ffff00;margin-left:auto;margin-right:auto;
width:100px;background-color:#000000;font-size:25px;border:2px solid white}
h1 {padding:0px;margin:0px;width:100px;color:#000000;background-color:#ff0000;font-size:20px}
.mois {margin-top:15px;padding:0px;border:1px solid #ffffff;width:100px;float:left;}
</style>

<script type="text/javascript">

//***********
// variables*
//***********
var s=['dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'];
var moi=['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];

var aff, aff1, aff2, an, mois, jour, boucle, mo, d1, it, sem;
var today=new Date();
var a=today.getUTCFullYear();
var today2=Date.UTC(a,today.getUTCMonth(),today.getUTCDate());// date du jour en temps universel

//************************************
// génération de l'année sélectionnée*
//************************************
function calendrier(){

if(a>=1970 && a<=2030){
   document.getElementById("af3").firstChild.data=a
}
else{
   alert("année invalide");document.getElementById("choix").value="";return false;
};
 
document.getElementById("af1").style.marginLeft=(screen.availWidth - 612) /2;
document.getElementById("af2").style.marginLeft=(screen.availWidth - 612) /2;
while(document.getElementById("af1").lastChild){
document.getElementById("af1").removeChild(document.getElementById("af1").lastChild)
};
while(document.getElementById("af2").lastChild){
document.getElementById("af2").removeChild(document.getElementById("af2").lastChild)
};

for(k=0;k!=12;k++){// chaque mois
   sem=0;
   mois=document.createElement("div");mois.className="mois";
   mo=document.createElement("h1");mo.appendChild(document.createTextNode(moi[k]));
   mois.appendChild(mo);

   d1=Date.UTC(a,k,1);

   for(i=0;i!=31;i++){// chaque jour
      it=document.createElement("div");it.style.backgroundColor="gray";it.style.width="100px";
      boucle=new Date(d1+1000*3600*24*i);
      if(Date.parse(boucle)==today2){it.style.backgroundColor="#ffff00"};

      it.prop=s[boucle.getUTCDay()]+" "+boucle.getUTCDate()+" "+moi[k]+" "+a;
      it.bckg=it.style.backgroundColor;

      if(boucle.getUTCMonth()==k){
         jour=document.createTextNode(s[boucle.getUTCDay()].substring(0,3)+' '+boucle.getUTCDate());
         it.onmouseover=function(){this.style.backgroundColor="#ffffff";this.title=this.prop};
         it.onmouseout=function(){this.style.backgroundColor=this.bckg};
      }
      else {
         it.style.color="gray";jour=document.createTextNode(".")
      };

      it.appendChild(jour);             
      if(it.firstChild.data.substring(0,3)=="dim"){sem++;it.style.borderBottom="2px solid #ffff00"};
      mois.appendChild(it);
       
   };
   if(sem==4){
      plus=document.createElement("div");
      plus.style.cssText="font-size:0px;background-color:gray;height:2px;width:100px";
      mois.appendChild(plus);
   };
   if(k<6){document.getElementById("af1").appendChild(mois)}else{document.getElementById("af2").appendChild(mois)}   
}

}

</script>

</head>
<body onload="calendrier()">

<div>

<div id="af">
<p style="padding-top:20px">
<input type="button" value="année précédente" onclick="if(a>1970){a-=1;calendrier()}" />
<strong id="af3">?</strong>
<input type="button" value="année suivante" onclick="if(a<2030){a++;calendrier()}" />
</p>
<p>
<label for="choix" style="font-weight:bold">saisir directement une année, entre 1970 et 2030</label><br />
<input type="text" size="2" maxlength="4" id="choix" />
<input type="button" value="ok" onclick="a=this.previousSibling.value;calendrier()" />
 
<div id="af1"></div>
<div id="af2"></div>
</div>

</div>

</body>
</html>

Auteur : siddh
Version : 11/01/2006
Faire defiler les colonnes d'une Table HTML
Ce script permet de faire défiler les colonnes d'une Table.
Ici elle est générée en PHP pour que le script soit moins long.
<script type='text/javascript'>
   
   var nbCols = 10;
   var startPos = 0;
   var maxCols = 0;
   
   function decoupeTable(idtable){
      var tble = document.getElementById(idtable);
      var nav  = document.createElement("div");
      var tb   = tble.getElementsByTagName("tbody")[0];
      var lig    = tble.getElementsByTagName("tr");
      var next = document.createElement("input");
      var prev = document.createElement("input");

      next.type = "button";
      next.value = ">";
      next.onclick = function(){
         if(startPos+nbCols != maxCols){
            for(var i=0;i<lig.length;i++){
               lig[i].childNodes[startPos].style.display = "none";
               lig[i].childNodes[startPos+nbCols].style.display = "";
            }
            startPos++;
         }
      }
      prev.type = "button";
      prev.value = "<";
      prev.onclick = function(){
         if(startPos != 0){
            startPos--;
            for(var i=0;i<lig.length;i++){
               lig[i].childNodes[startPos].style.display = "";
               lig[i].childNodes[startPos+nbCols].style.display = "none";
            }
         }
      }
      
      nav.appendChild(prev);
      nav.appendChild(next);
      tble.parentNode.insertBefore(nav,tble);

      maxCols = lig[0].childNodes.length;

      for(var i=0;i<lig.length;i++){
         var cells = lig[i].childNodes;
         for(var j=nbCols;j<maxCols;j++){
            cells[j].style.display = "none";
         }
      }
   }

   window.onload = function(){
      decoupeTable('matable');
   }
</script>

<div id='stpos'></div>
<?
   echo "<table id='matable' border='1'>
         <tbody>";
   for($i=0;$i<5;$i++){
      echo "<tr>";
      for($j=0;$j<50;$j++)
         echo "<td>",$i," ",$j,"</td>";
      echo "</tr>";
   }
   echo "</tbody>
      </table>";
?>

Auteur : siddh
Version : 13/01/2006
Faire défiler du texte lettre par lettre (Effet machine à écrire)
html>
<head>
<title>typewriter</title>
<script type='text/javascript'>
   var letexte = 'Du texte a écrire';
   var montimer;
   var cmpt = 0;
   function typewriter(){
      lelien = document.getElementById('lien');
      if(cmpt < letexte.length){
         courant = lelien.innerHTML.substring(0, lelien.innerHTML.length -1);
         courant += letexte.charAt(cmpt)+"_";
         lelien.innerHTML = courant;
      }
      else{
         lelien.innerHTML = "";
         cmpt = -1;
      }
      cmpt++;
      setTimeout("typewriter()",100);
   }
   window.onload = function(){
      typewriter();
   }
</script>
</head>
<body>
<a href="#" id="lien" style="text-decoration: none;"></a>
</body>
</html>

Auteur : siddh
Version : 15/01/2006
Tester si on est connecté à internet
Pour pouvoir tester si on est connecté, il faut utiliser un fichier à mettre quelque part sur internet dans un endroit dont on es sûr qu'il sera toujours accessible.
Voici le contenu du fichier :
<html>
   <head>
      <title> mon titre </title>
   </head>
   <body>
      <script type='text/javascript'>
         if(window.parent)
            window.parent.connTester.connectedStatuts = true;
      </script>
   </body>
</html>
Ensuite, dans la page où vous voulez tester la connection :
<html>
   <head>
      <title> mon titre </title>
      <script type='text/javascript'>
         var connectStatus = false;
         function TestConnect(){
         // Ici on met l'adresse vers l'autre fichier
            this.adresse = "http://localhost/tests/connectOk.html";
            this.connectedStatuts = false;
            
            this.test = function(){
               this.ifr = document.createElement("iframe");

               this.ifr.id = 'moniframe';
               this.ifr.style.display = 'none';

               document.body.appendChild(this.ifr);
               this.ifr.src = this.adresse;       
               this.ifr.onload = function() {
                  if(!window.connTester.connectedStatuts)
                     window.connTester.notConnected();
                  else
                     window.connTester.connected();
                  setTimeout("window.connTester.removeFrame()",1000);
               }               
            }
            this.removeFrame = function(){
               document.body.removeChild(this.ifr);
            }
         }

         TestConnect.prototype = {
            notConnected:
               function(){
                  /**
                  * Cette fonction ne sera exécuté que
                  * si il n'accède pas à l'autre page
                  */
                  alert('pas connecté');
               }
            ,
            connected:
               function(){
                  /**
                  * Cette fonction ne sera exécuté que
                  * si il accède à l'autre page
                  */
                  alert('connecté');
               }
         }

         window.connTester = new TestConnect();         
      </script>
   </head>
   <body>
      <input type='button' name='' id='a' value='test' onclick='window.connTester.test()' />
   </body>
</html>

Auteur : siddh
Version : 15/01/2006
Changer dynamiquement une règle de style dans la CSS
<style type='text/css'>
#mondiv{
   background: red;
}
</style>
<script type='text/javascript'>
   function getRuleIndex(name){
      var cmpt = 0;
      var index = 0;
      var tab = null;
      var good = false;
      
      while(index<document.styleSheets.length && !good){
         tab = document.all ? document.styleSheets[index].rules : document.styleSheets[index].cssRules;

         while(cmpt<tab.length && !good){
            if(tab[cmpt].selectorText.toLowerCase() != name)
               good = true;
            cmpt++;
         }

         index++;
      }

      return {sheetIndex:index-1,ruleIndex:cmpt-1};
   }

   function changeRule(selector,cssText){
      infos = getRuleIndex(selector);
      sheet = document.styleSheets[infos.sheetIndex];
      if(document.all){
         sheet.removeRule(infos.ruleIndex);
         sheet.addRule(selector,cssText);         
      }
      else{
         sheet.deleteRule(infos.ruleIndex);
         sheet.insertRule(selector+"{"+cssText+"}", sheet.cssRules.length);
      }
   }
</script>
<div id='mondiv'>
bla bla
</div>
<input type='button' onclick='changeRule("#mondiv","background-color:green")' value='changer' />

rechercher
precedent    sommaire       telecharger

Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.