Logo Openstudio
Logo Openstudio

Nos contributions > jQuery flipv()

jQuery flipv()

Une implémentation accessible pour afficher une ligne de texte verticale

Présentation

En CSS2, il n’est pas possible d’afficher des textes verticaux. Le seul navigateur proposant une alternative est internet explorer, avec les attributs css filter et writing-mode. Exemple :

  1. .verticaltext {
  2. writing-mode: tb-rl;
  3. filter: flipv fliph;
  4. }

Or les textes verticaux peuvent être intéressants en fonction du design choisi. Par exemple, je les utilise dans le jQuery virtual tour pour l’affichage du titre, le placement en haut à droite ne masque pas le panorama.

L’idée c’est donc de développer avec jQuery une alternative pour les navigateurs ne reconnaissant pas le writing-mode : firefox, opéra, safari..

Comme jQuery est une technologie non intrusive, on est sûr que les visiteurs pourront accéder au texte, qui en cas d’échec s’affichera horizontalement.

La solution la plus intuitive est d’utiliser la balise <canvas> introduite par Apple et qui est désormais reconnue par l’ensemble des navigateurs récents : firefox, safari et opéra.

IE ne reconnaît pas cette balise, donc on conservera dans le cas d’IE un affichage basé sur l’attribut writing-mode.

Une lacune de la balise <canvas> c’est qu’il n’existe pas de méthode native pour afficher du texte. Il faut utiliser la librairie cvi_text_lib.js de netzgesta, qui offre une méthode pour écrire dans la balise <canvas>, uniquement en Verdana.

Utilisation

Insérez l’appel aux librairies javascript dans la section <head> de votre page :

  1. <script type="text/javascript" src="js/jquery.js"></script>
  2. <script type="text/javascript" src="js/cvi_text_lib.js"></script>
  3. <script type="text/javascript" src="js/jquery.flipv.js"></script>

Ajoutez simplement la classe "flipv" au texte que vous souhaitez afficher verticalement.

exemple : <p class='flipv'>mon texte</p>

Vous pouvez également faire un appel à la méthode flipv() sur les éléments de votre choix en utilisant un sélecteur jQuery.

exemple : $('p').flipv();

Vous n’avez pas besoin d’ajouter les attributs filter et writing-mode pour IE, le plugin s’en chargera tout seul.

Vous pouvez définir une largeur et une hauteur pour votre texte. Dans ce cas donnez lui la hauteur et la largeur pour un affichage horizontal. Lorsque le plugin s’exécutera, il inversera automatiquement les deux valeurs.

Limitations

- affichage d’une ligne seulement
- police de caractère Verdana

Le 22 avril 2008


Messages

  • Salutations !
    Retraité et débutant, je vais essayer votre logiciel ;
    J’espère m’en sortir et vous ferrai part de mon résulta

    Merci, à plus

  • I got a lot of problems with other font-sizes so i made a change in the script instead of the 60 value in the strokeText() function i made it to 78-fontsize :

    context.strokeText(mytext,3,78-fontsize,fontsize-2) ;

    in the very last line in the function vertical_text() and now i can se every size i have tried !

    Voir en ligne : Jesper Lindstrøm Nielsen

  • Bonjour,
    Y à t’il une possibilité de personnaliser l’angle de rotation, du genre "$(’p’).flip(90)" ?

    Dans tous les cas, merci pour ce plugin qui m’évite de devoir passer par des générations dynamique d’images ou par des scripts bien plus complexes en surface et donc moins propres.

  • Thanks for this plugin, it works really well. I have one problem though, there is occasionally spacing added to the top of the text, depending on how many words are used.

    I’ve tried to remove the spacing, but this isn’t working, is there any way I can remove the spacing ?

modération a priori

Attention, votre message n'apparaîtra qu'après avoir été relu et approuvé.

Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

A propos de l'auteur

Arnault PACHOT

Co-fondateur et Directeur Technique, Arnault apporte son expertise unique sur les solutions libres.

Il assure une veille technologique régulière, et supervise les phases techniques des développements tout au long du déroulement du projet.