Objet défilant Javascript DOM, XHTML 1.1, CSS 2.1

ViPHP
AB
ViPHP | 5818 Messages

22 déc. 2010, 02:39

Bonjour,

Version 1.4 : n'a été en ligne que quelques instants, l'encre était pas sèche.

Version 1.5 en ligne

La fonction permet maintenant un défilement horizontal ou vertical.

Toutes les possibilités de paramétrage et fonctions de navigation disponibles pour le sens horizontal sont également disponibles pour le sens vertical.

Le mode d'emploi et le code de mon premier message ont été modifiés en conséquence.

Je posterai prochainement un exemple, mais c'est très simple à configurer :

Le quatrième paramètre de la fonction qui indique le sens de défilement peut maintenant être défini sur 'h' pour un défilement vertical du bas vers le haut et 'b' pour l'inverse - ceci en complément des précédentes possibilités qui sont toujours "g" pour un défilement horizontal de la droite vers la gauche et "d" pour l'inverse.

Voilà, la fonction est désormais presque complète :D
Modifié en dernier par AB le 06 janv. 2011, 01:18, modifié 2 fois.

ViPHP
AB
ViPHP | 5818 Messages

23 déc. 2010, 17:39

Bonjour,

Voici un exemple de défilement vertical.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Générateur d'objets défilants http://www.abciweb.net</title>
<script type="text/javascript" src="http://www.abciweb.net/Scripts/objet-defilant.js"></script>

<script type="text/javascript">
<!--
addLoad_DF_ObjetDefilant(function(){DF_ObjetDefilant('defilant','auto','b','h','20','5','15','2000')});
-->
</script>



<style type="text/css">
<!--
body {
font-size:1em;
}


#cadre_defilant {
overflow : hidden;/*pour ie*/
width:230px; 
height:400px;
margin:2em auto 0 auto;
padding : 0 1em;
border:18px solid #CC0066;

font-family:Arial, Helvetica, sans-serif;
font-size:1em;
text-align:justify;
line-height:1.4em;
}


#conteneur_defilant {
position : relative;
overflow : hidden;
visibility:hidden;/*pour ie*/
height:100%;
}


/*pour centrer les images*/
#defilant img {
display:block;
margin:auto;
}

-->
</style>
</head>

<body>

<div id = "cadre_defilant">

<div id = "conteneur_defilant">
    <div id = "defilant" onmouseover = "DF_ObjetDefilant_Off('defilant')">

		<img src = "http://abciweb.net/PHOTO/Albert-Einstein--Langue.jpg" width="157" height="186"/>
		<br /><strong>Albert et une bimbo</strong><br /><br />
		<a class="liens" href="http://www.abciweb.net/objet-defilant.php"><strong>Autres exemples</strong></a> ...
		<br /><br /><br />
On peut mélanger du texte et des images ou mettre plusieurs images <strong>à condition</strong> de renseigner la hauteur <strong>et</strong> la largeur des images dans le code html du défilant. 
		<br /><br /><br />
		<img src="http://www.abciweb.net/PHOTO/bimbo.jpg" width="137" height="405" title="Bimbo 1" alt="Bimbo 1" />
        
    </div>
</div>

</div>

<div onmouseover = "DF_ObjetDefilant_On('defilant')" onclick = "DF_ObjetDefilant_Inverse('defilant')"  style="position:relative;width:40px;margin:auto; cursor:pointer;z-index:10;top:-17px"><img src="http://www.abciweb.net/images_nav/fleche_aller_retour_blanc_fong_rouge.png" width="40"  height="15"  alt="Inversion du sens de défilement" title="Inversion du sens de défilement" />
</div>

</body>
</html>
Voir le résultat de l'exemple

Note : le "css" de "#conteneur_defilant" est indispensable mais toujours identique.

A noter que le css de centrage des images dans le code ci-dessus ne doit être utilisé que pour le mode vertical.
Modifié en dernier par AB le 16 juin 2011, 19:36, modifié 6 fois.

ViPHP
AB
ViPHP | 5818 Messages

06 janv. 2011, 02:34

Version 2.0 en ligne

Attention cette version n'est pas compatible avec les anciens codes html des versions précédentes.

- Elle nécessite un bloc conteneur en plus du cadre et du bloc défilant, comme dans l'exemple de défilement vertical du message ci-dessus. Cela dit, le css de ce div conteneur est toujours identique quelque soit le défilant (horizontal ou vertical), ce qui facilitera les éventuelles mises à jour du code html.

- Autre particularité, pensez à mettre la mention "overflow : hidden;" dans le css du cadre défilant pour compatibilité avec certaines versions d'Internet Exploreur.

En contre partie cette nouvelle version possède l'avantage de pouvoir fonctionner sans avoir à passer la dimension totale du défilant en paramètre à la fonction, contrairement aux versions précédentes dans certains cas. Vous pouvez donc rentrer librement du texte ou des images - à la condition d'indiquer les dimensions des images dans le code html du bloc défilant - ou simultanément les deux, pour le mode horizontal comme pour le mode vertical.

Le code et le mode d'emploi ont été modifiés en conséquence :)

ViPHP
AB
ViPHP | 5818 Messages

16 juin 2011, 19:04

Version 2.2 en ligne

Corrige un bug (saccade au moment de la boucle) en cas de paramétrage de la fonction en mode boucle, avec un retour de boucle renseigné différent de 0 ou de '', conjointement avec l'utilisation de l'attribut margin sur tous les éléments inclus dans le défilant (typiquement pour espacer des images).

La version 2.2 mise en ligne fonctionne désormais correctement dans ce cas de figure.


Note complémentaire :

Précautions concernant l'utilisation du mode "auto" en deuxième paramètre.

Soyez rigoureux quand vous formatez le contenu du défilant. Par exemple le code ci-dessous pose problème dans Google Chrome (mais pas dans FF ni IE) avec un défilement horizontal en mode boucle et un retour de boucle non nul :

Code : Tout sélectionner

<strong>azerty <a href="http://www.monsite.net/page.php" >toto</a></strong>
Apparemment Chrome mettrait également en gras les balises "<a href=...", ce qui fausse la mesure exacte de la largeur de la ligne, nécessaire pour calculer le retour de boucle. Cette explication est fausse car

Code : Tout sélectionner

<strong><a href="http://www.monsite.net/page.php" >toto</a></strong>
fonctionnera sans problème (toujours pour le mode boucle horizontal et un retour de boucle supérieur à 0).
Mais c'est un moyen mnémotechnique d'éviter les problèmes puisque le code qui fonctionne dans tous les cas (tous navigateurs) est :

Code : Tout sélectionner

<strong>azerty </strong><a href="http://www.monsite.net/page.php" ><strong>toto</strong></a>

Petit nouveau ! | 1 Messages

16 juin 2012, 04:29

bravo pour ce script de défilement,
avec votre permission, je vais l'étudier puis l'utiliser sur le site de ma femme pour faire défiler des news.

Modération : Lien retiré

ViPHP
AB
ViPHP | 5818 Messages

20 juin 2012, 22:43

bravo pour ce script de défilement,
avec votre permission, je vais l'étudier puis l'utiliser sur le site de ma femme pour faire défiler des news.
Pas de problème. Ce script est ici pour que tout le monde en profite sans restriction :)

Eléphanteau du PHP | 11 Messages

02 juil. 2012, 16:28

Bonjour!

Merci pour ce sript.
Il est un peu compliqué pour moi (je suis débutante), mais je vais l'étudier pour bien le comprendre et puis l'essayer aussi :wink:
Encore merci!