Bonjour à tous,
je suis confronté à un petit problème pas bien courant.
Je suis en train de développer un blog sous wordpress avec un layout horizontal. Les articles sont organisés sur la page d'accueil avec la librairie Isotope.js et quand on clique sur un article, celui ci s'agrandit pour afficher le contenu (appel AJAX). Jusqu'ici pas de problème.

En revanche, là où se situe le problème c'est que je dois faire face à la longueur des articles afin qu'ils rentrent parfaitement à la fois en hauteur (hauteur fixe du body, scroll vertical interdit) et en largeur. En effet, en fonction de la longueur du texte, j'affiche une ou deux colonnes dans l'article.
J'ai donc écrit cette fonction afin d'afficher le nombre de colonnes en fonction de la longueur du texte :

    function expandText(){
        var heightExpand = $('.stereotype.expand').height(),
            heightTextExpand = $('.stereotype.expand .single-content').height(),
            textExpand = $('.stereotype.expand .single-content');

        if (heightTextExpand > heightExpand){
            textExpand.css({'column-count': '2', '-moz-column-count': '2', '-webkit-colum-count': '2'});
            $('.format-aside.expand').css({'width': '25%'});
            $container.isotope('layout');
        }       
    }

Malheureusement, ce code fonctionne bien si la longueur de l'article est conséquente. Par contre, si le texte "dépasse" seulement de quelques mots, je me retrouve avec une largeur d'article trop grande par rapport au contenu.

D'où ma question : comment pourrais-je adapter la largeur de mon article en tenant compte plus précisement de la longeur du texte ?

Merci d'avance pour vos réponses ;)

4 réponses


ToToSe
Réponse acceptée

Yop,
Tu pourrais par exemple réduire la police de quelques pixels si le contenue "dépasse" seulement de quelques mots (il te faudra alors rajouter une autre conditions dans ton code JS (Articles trop long => rajout d'une colonne / Article trop long seulement de quelques mot => réduction de la font size), ou bien (encore pour le cas Article trop long seulement de quelques mot ) rajouter 3 petit point en text-decoration:underline et cursor:pointer qui affiche quand on passe la souris les quelques mot en trop pour une colonne.

Amstramgram
Réponse acceptée

Tu peux tester un .length sur le texte qui est dans ta div.

http://jsfiddle.net/vojjL9he/

Romano83
Auteur

Salut,
merci pour tes suggestions.
Par contre, je vois pas trop comment tu peux savoir si le texte dépasse seulement de quelques mots ou de beaucoup de mots...
Il me faudrait faire un compteur de mots si je ne me trompe pas ? Dans ce cas, il faudrait que je fixe arbitraitrement le nombre de mots à ne pas dépasser pour avoir une réduction de la taille de la police et au dessus, on rajoute une colonne ?
Par ailleurs, si le design est responsive, comment tu gères ça ?

Romano83
Auteur

Merci pour vos réponses !
Je vais tester ça et je vous en dirais plus.