Accueil > > > CLASS BARRE DE DÉFILEMENT (SCROLLBAR) JAVASCRIPT
CLASS BARRE DE DÉFILEMENT (SCROLLBAR) JAVASCRIPT
Information sur la source
Description
Eternel problème dans le développement Web, les "scrollbar" qui sont peu ou pas du tout controlable. d'où l'intérêt de les refaire. Alors voila une petite class Javascript assez complète et simple d'utilisation qui permet de gérer les scrollbar dans un div. Testé sous les navigateurs suivant : -> INTERNET EXPLORER 7 -> Google Chrome 2.0 -> FireFox 1.0 jusqu'à 3.5 -> Netscape 7 (Tout fonctionne sauf la roulette de la souris) -> Opera 8.54 (Tout fonctionne sauf la roulette de la souris) -> Opera 9.02 (si vous réalisez d'autres tests faites le moi savoir).
Source
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html>
- <head>
- <title>Test du défilement</title>
- <script language="javascript" src="js/BarreDefilement.js" version="1.6"></script>
- <script language="javascript">
- var Barre;
-
-
- function Envoyer_Message(){
- document.getElementById("Tchat").innerHTML=document.getElementById("Tchat").innerHTML + "<b>Eric >></b>" + document.getElementById("Dial").value+"<br />";
- document.getElementById("Dial").value="";
- Barre.ActualiserContenuBarre();
-
-
- }
-
- function CreerBarre(){
- Barre= new BarreDefilement("Tchat");
- Barre.DefinirHauteurBarre(300); //Réajuste automatiquement si le contenu d'origine a deformer le calque principale
- Barre.DefinirEpaisseurBarres(30); //Definis la largeur des deux barres de défilement
-
-
- var BV=Barre.ObtenirBarreVerticale(); // Retourne la barre de défilemnt verticale
- BV.style.backgroundImage='url(./img/fondbarre.jpg)';
-
- var IH=Barre.ObtenirIconeHaut(); //renvoie le div contenant la fleche du haut
- IH.style.backgroundImage='url(./img/fleche_haut.gif)';
- IH.style.height="30px";
- var IB=Barre.ObtenirIconeBas(); //renvoie le div contenant la fleche du bas
- IB.style.backgroundImage='url(./img/fleche_bas.gif)';
- IB.style.height="30px";
- Barre.RecalculTailleCurseurV(); //recalcul la hauteur du curseur vertical
- Barre.RecalculPositionCurseurV(); //recalcul la position du curseur verticale
-
- var BH=Barre.ObtenirBarreHorizontale();
- BH.style.backgroundImage='url(./img/fondbarre.jpg)';
- var IG=Barre.ObtenirIconeGauche(); //renvoie le div contenant la fleche du haut
- IG.style.backgroundImage='url(./img/fleche_gauche.gif)';
- IG.style.width="30px";
- var ID=Barre.ObtenirIconeDroite(); //renvoie le div contenant la fleche du bas
- ID.style.backgroundImage='url(./img/fleche_droite.gif)';
- ID.style.width="30px";
- Barre.RecalculTailleCurseurH(); //recalcul la hauteur du curseur vertical
- Barre.RecalculPositionCurseurH(); //recalcul la position du curseur verticale*/
-
-
-
- //AUTRE METHODES
- // Barre.ObtenirBarreHorizontale(); // Retourne la barre de défilemnt horizontale
- // Barre.ObtenirIconeMilieuDefilantV(); // Retourne la curseur de défilemnt verticale
- // Barre.ObtenirIconeMilieuDefilantH(); // Retourne la curseur de défilemnt horizontale
- // Barre.ObtenirConteneurGlobal(); // Retourne le calque qui contient tout(Div principale,barre de défilements...)
- // Barre.DefinirEpaisseurBarres(30); //Definis la largeur des deux barres de défilement
- // ->Barre.DefinirEpaisseurBarreHorizontale(30) //Definis la largeur de la barres horizontale
- // ->Barre.DefinirEpaisseurBarreVerticale(30) //Definis la largeur de la barres verticale
- // Barre.ActualiseAutomatiquement(1000); // Permet une actualisation automatique toutes les 1000ms (parametre changeable)
- // Barre.ActualiseManuellement(); //Repasse en actualisation manuel(arrete l'actualisation automatique) (méthode par défault)
- // Barre.ActualiserContenuBarre(); //Permet une actualisation manuelle (important lors du rajout de contenu si le mode actualisation n'est pas définit en automatique...)
- // Barre.DeplacerBarreVEnBas(); //Fait descendre la barre tout en bas
- // Barre.DeplacerBarreVEnHaut(); //Fait monter la barre en haut
- // Barre.DeplacerBarreHADroite(); //Déplace la barre à droite
- // Barre.DeplacerBarreHAGauche(); //Déplace la barre à gauche
- // Barre.ChangerPasDeplacement(10); //Change les pas de déplacement vertical et horitontale (par défault 3)
- // Barre.ChangerPasDeplacementV(10); //Change le pas de déplacement vertical (par défault 5)
- // Barre.ChangerPasDeplacementH(10); //Change le pas de déplacement horizontal (par défault 5)
- // Barre.DeplacerPrincipalVenPx(10); //Déplace le centre de X pixel
- // Barre.ChangerVisibiliteBarres(2); //Change la visibilité des deux barres (1->Visible,2->Cache,3->auto)
- // Barre.ChangerVisibiliteBarreV(2); //Change la visibilité de la barre Verticale (1->Visible,2->Cache,3->auto)
- // Barre.ChangerVisibiliteBarreH(2); //Change la visibilité de la barre Horizontale (1->Visible,2->Cache,3->auto)
- // Barre.ActiverDeplacementMouseOver(true); //Active ou désactive l'utilisation des barres au simple survol de la souris (désactivé par défault)
- // Barre.ActiverDeplacementMouseClick(true); //Active ou désactive l'utilisation des barres au click de la souris (Activé par défault)
- // Barre.ActiverChangementFondPassageSouris(false);; //Active ou désactive le changement de couleur des éléments de la barre lors du survol de la souris
- // Barre.DefinirCouleurFondBase("#FF0000"); //Définis la couleur de fond des barres
- // Barre.DefinirCouleurFondSecondaire("#00FF00"); //Définis la couleur de fond des barres au passage de la souris
- }
-
-
- </script>
- </head>
- <body onload="CreerBarre();">
- <center><h1>Exemple de barre de défilement de DIV</h1></center>
- <center>
- <div id="Tchat" style="padding: 3px; border: 1px solid black;width: 500px; height: 300px;text-align: left;" ></div>
- Parler : <input type="text" size="60" Onkeydown="if(event.keyCode==13){Envoyer_Message();}" name="Dial" id="Dial"/> <input type="button" value="Envoyer" Onclick="Javascript:Envoyer_Message();" />
- <br /> <br />
- <h2>Quelques méthodes de la barre horizontale</h2>
- <input type="button" value="Montrer Barre" Onclick="Javascript:Barre.ChangerVisibiliteBarreH(1);" /> <input type="button" value="Cacher Barre" Onclick="Javascript:Barre.ChangerVisibiliteBarreH(2);" /> <input type="button" value="Visibilité Automatique" Onclick="Javascript:Barre.ChangerVisibiliteBarreH(3);" /><br /> <br />
- <input type="button" value="Barre à gauche" Onclick="Javascript:Barre.DeplacerBarreHAGauche();" /> <input type="button" value="Barre à Droite" Onclick="Javascript:Barre.DeplacerBarreHADroite();" /><br /> <br />
- <input type="button" value="Agrandir Zone" Onclick="Javascript:Barre.DefinirLargeurBarre(800);" /> <input type="button" value="Diminuer Zone" Onclick="Javascript:Barre.DefinirLargeurBarre(300);" /><br /> <br />
- <br /> <br />
- <h2>Quelques méthodes de la barre verticale</h2>
- <input type="button" value="Montrer Barre" Onclick="Javascript:Barre.ChangerVisibiliteBarreV(1);" /> <input type="button" value="Cacher Barre" Onclick="Javascript:Barre.ChangerVisibiliteBarreV(2);" /> <input type="button" value="Visibilité Automatique" Onclick="Javascript:Barre.ChangerVisibiliteBarreV(3);" /><br /> <br />
- <input type="button" value="Descendre Barre" Onclick="Javascript:Barre.DeplacerBarreVEnBas();" /> <input type="button" value="Monter Barre" Onclick="Javascript:Barre.DeplacerBarreVEnHaut();" /><br /> <br />
- <input type="button" value="Diminuer Zone" Onclick="Javascript:Barre.DefinirHauteurBarre(200);" /> <input type="button" value="Agrandir Zone" Onclick="Javascript:Barre.DefinirHauteurBarre(500);" /><br /> <br />
- </center>
- </body>
- </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Test du défilement</title>
<script language="javascript" src="js/BarreDefilement.js" version="1.6"></script>
<script language="javascript">
var Barre;
function Envoyer_Message(){
document.getElementById("Tchat").innerHTML=document.getElementById("Tchat").innerHTML + "<b>Eric >></b>" + document.getElementById("Dial").value+"<br />";
document.getElementById("Dial").value="";
Barre.ActualiserContenuBarre();
}
function CreerBarre(){
Barre= new BarreDefilement("Tchat");
Barre.DefinirHauteurBarre(300); //Réajuste automatiquement si le contenu d'origine a deformer le calque principale
Barre.DefinirEpaisseurBarres(30); //Definis la largeur des deux barres de défilement
var BV=Barre.ObtenirBarreVerticale(); // Retourne la barre de défilemnt verticale
BV.style.backgroundImage='url(./img/fondbarre.jpg)';
var IH=Barre.ObtenirIconeHaut(); //renvoie le div contenant la fleche du haut
IH.style.backgroundImage='url(./img/fleche_haut.gif)';
IH.style.height="30px";
var IB=Barre.ObtenirIconeBas(); //renvoie le div contenant la fleche du bas
IB.style.backgroundImage='url(./img/fleche_bas.gif)';
IB.style.height="30px";
Barre.RecalculTailleCurseurV(); //recalcul la hauteur du curseur vertical
Barre.RecalculPositionCurseurV(); //recalcul la position du curseur verticale
var BH=Barre.ObtenirBarreHorizontale();
BH.style.backgroundImage='url(./img/fondbarre.jpg)';
var IG=Barre.ObtenirIconeGauche(); //renvoie le div contenant la fleche du haut
IG.style.backgroundImage='url(./img/fleche_gauche.gif)';
IG.style.width="30px";
var ID=Barre.ObtenirIconeDroite(); //renvoie le div contenant la fleche du bas
ID.style.backgroundImage='url(./img/fleche_droite.gif)';
ID.style.width="30px";
Barre.RecalculTailleCurseurH(); //recalcul la hauteur du curseur vertical
Barre.RecalculPositionCurseurH(); //recalcul la position du curseur verticale*/
//AUTRE METHODES
// Barre.ObtenirBarreHorizontale(); // Retourne la barre de défilemnt horizontale
// Barre.ObtenirIconeMilieuDefilantV(); // Retourne la curseur de défilemnt verticale
// Barre.ObtenirIconeMilieuDefilantH(); // Retourne la curseur de défilemnt horizontale
// Barre.ObtenirConteneurGlobal(); // Retourne le calque qui contient tout(Div principale,barre de défilements...)
// Barre.DefinirEpaisseurBarres(30); //Definis la largeur des deux barres de défilement
// ->Barre.DefinirEpaisseurBarreHorizontale(30) //Definis la largeur de la barres horizontale
// ->Barre.DefinirEpaisseurBarreVerticale(30) //Definis la largeur de la barres verticale
// Barre.ActualiseAutomatiquement(1000); // Permet une actualisation automatique toutes les 1000ms (parametre changeable)
// Barre.ActualiseManuellement(); //Repasse en actualisation manuel(arrete l'actualisation automatique) (méthode par défault)
// Barre.ActualiserContenuBarre(); //Permet une actualisation manuelle (important lors du rajout de contenu si le mode actualisation n'est pas définit en automatique...)
// Barre.DeplacerBarreVEnBas(); //Fait descendre la barre tout en bas
// Barre.DeplacerBarreVEnHaut(); //Fait monter la barre en haut
// Barre.DeplacerBarreHADroite(); //Déplace la barre à droite
// Barre.DeplacerBarreHAGauche(); //Déplace la barre à gauche
// Barre.ChangerPasDeplacement(10); //Change les pas de déplacement vertical et horitontale (par défault 3)
// Barre.ChangerPasDeplacementV(10); //Change le pas de déplacement vertical (par défault 5)
// Barre.ChangerPasDeplacementH(10); //Change le pas de déplacement horizontal (par défault 5)
// Barre.DeplacerPrincipalVenPx(10); //Déplace le centre de X pixel
// Barre.ChangerVisibiliteBarres(2); //Change la visibilité des deux barres (1->Visible,2->Cache,3->auto)
// Barre.ChangerVisibiliteBarreV(2); //Change la visibilité de la barre Verticale (1->Visible,2->Cache,3->auto)
// Barre.ChangerVisibiliteBarreH(2); //Change la visibilité de la barre Horizontale (1->Visible,2->Cache,3->auto)
// Barre.ActiverDeplacementMouseOver(true); //Active ou désactive l'utilisation des barres au simple survol de la souris (désactivé par défault)
// Barre.ActiverDeplacementMouseClick(true); //Active ou désactive l'utilisation des barres au click de la souris (Activé par défault)
// Barre.ActiverChangementFondPassageSouris(false);; //Active ou désactive le changement de couleur des éléments de la barre lors du survol de la souris
// Barre.DefinirCouleurFondBase("#FF0000"); //Définis la couleur de fond des barres
// Barre.DefinirCouleurFondSecondaire("#00FF00"); //Définis la couleur de fond des barres au passage de la souris
}
</script>
</head>
<body onload="CreerBarre();">
<center><h1>Exemple de barre de défilement de DIV</h1></center>
<center>
<div id="Tchat" style="padding: 3px; border: 1px solid black;width: 500px; height: 300px;text-align: left;" ></div>
Parler : <input type="text" size="60" Onkeydown="if(event.keyCode==13){Envoyer_Message();}" name="Dial" id="Dial"/> <input type="button" value="Envoyer" Onclick="Javascript:Envoyer_Message();" />
<br /> <br />
<h2>Quelques méthodes de la barre horizontale</h2>
<input type="button" value="Montrer Barre" Onclick="Javascript:Barre.ChangerVisibiliteBarreH(1);" /> <input type="button" value="Cacher Barre" Onclick="Javascript:Barre.ChangerVisibiliteBarreH(2);" /> <input type="button" value="Visibilité Automatique" Onclick="Javascript:Barre.ChangerVisibiliteBarreH(3);" /><br /> <br />
<input type="button" value="Barre à gauche" Onclick="Javascript:Barre.DeplacerBarreHAGauche();" /> <input type="button" value="Barre à Droite" Onclick="Javascript:Barre.DeplacerBarreHADroite();" /><br /> <br />
<input type="button" value="Agrandir Zone" Onclick="Javascript:Barre.DefinirLargeurBarre(800);" /> <input type="button" value="Diminuer Zone" Onclick="Javascript:Barre.DefinirLargeurBarre(300);" /><br /> <br />
<br /> <br />
<h2>Quelques méthodes de la barre verticale</h2>
<input type="button" value="Montrer Barre" Onclick="Javascript:Barre.ChangerVisibiliteBarreV(1);" /> <input type="button" value="Cacher Barre" Onclick="Javascript:Barre.ChangerVisibiliteBarreV(2);" /> <input type="button" value="Visibilité Automatique" Onclick="Javascript:Barre.ChangerVisibiliteBarreV(3);" /><br /> <br />
<input type="button" value="Descendre Barre" Onclick="Javascript:Barre.DeplacerBarreVEnBas();" /> <input type="button" value="Monter Barre" Onclick="Javascript:Barre.DeplacerBarreVEnHaut();" /><br /> <br />
<input type="button" value="Diminuer Zone" Onclick="Javascript:Barre.DefinirHauteurBarre(200);" /> <input type="button" value="Agrandir Zone" Onclick="Javascript:Barre.DefinirHauteurBarre(500);" /><br /> <br />
</center>
</body>
</html>
Conclusion
Merci de me signaler toutes incompatibilités, bugs, amélioration ou toutes remarques constructives sur ce projet.
Historique
- 23 août 2009 14:53:04 :
- - Mise ne conformité avec Netscape
- Ajout du la roulette de la souris
- Meilleur gestion des événements
- Ajout de méthode gestion du thème graphique
- Choix si défilement au clique ou au simple passage de la souris
- 24 août 2009 00:00:24 :
- 1) Correction de nombreux bugs graphique
2) Ajout de la barre Horizontale
3) Mise en place de boutons dans la page d'exemple pour tester quelques fonctions de la barre
- 24 août 2009 00:05:59 :
- 1)Correction de fautes d'orthographe et MAJ du code Exemple ;-)
- 25 août 2009 12:35:03 :
- 1)Correction de nombreux bugs ||
2)Améliorations roulettes ||
3)Améloirations déplacement des barres par selection du curseur centrale
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
synchroniser 2 scrollbars horizontales ? [ par badrylb ]
Bonjour, Contexte : document xhtml - 2 boites DIV avec chacune des barres de défilement. Comment pourrais-je synchroniser les scrollbars
class et id définis dans une même balise ? [ par sagat06 ]
Bonjour à tous.J'aimerais savoir s'il existe un moyen de définir à la fois la class et l'id d'une div, du genre:<div class='no1' id='no2'>En eff
size maxi d'une liste [ par waner ]
Bonjour,J'ai une liste(générée dynamiquement) dans une div et je fais en sorte que cette liste ait toujours une size égale à son nombre d'éléments, af
trouver la class d'une div et la mettre dans un cookie pour la mettre plus tard [ par Annadrill ]
Bonsoir, j'ai un ptit souci,j'ai une div comme cela:<div class="mythinkred" id="mimi"></div>et plus loin une possibilité de changer la cla
compter le nombre de div ayant pour class madiv [ par 64nemesis ]
Bonjour à tous je souhaiterai faire une toute petite fonction qui ma permettrait dans une page donnée de compter le nombre de Divs ayant pour class "m
IE + Ajax + Css : pas de css ! [ par lyrix37 ]
Bonjour la compagnie ! et bien mon problème est tout simple : j'ai fait une page web, avec changement de div en ajax : mais quand je change ce div, q
Récupération de variable [ par romain14g59 ]
Bonjour a tous voila j'ai trouver ce script !! http://www.mozilla.org/editor/midasdemo/ il fonctionne nikel mais mon probléme et la récupération du te
creation d'un div [ par kazma ]
Bonjourj'ai cree un div de cette facon ( document.body.appendChild(document.createElement('div')).setAttribute("id","div_de_table");) j'usqu'ici aucun
Drag and Drop [ par Killion ]
Bonsoir,Je suis a la recherche d'un script de drag and drop, je suis tombé sur scriptaculous et sur rico... Mon problème est le suivant: j'aimerai pou
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
UTILISER UN .JSUTILISER UN .JS par zaikoe
Cliquez pour lire la suite par zaikoe
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|