Maison > interface Web > js tutoriel > le corps du texte

Comment utiliser js pour implémenter la fonction de masquage de débordement multiligne

不言
Libérer: 2018-07-14 11:06:32
original
2227 Les gens l'ont consulté

Cet article présente principalement comment utiliser js pour implémenter la fonction de masquage de débordement multi-lignes. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

En raison de la comparaison. sur les terminaux mobiles Pour beaucoup, la prise en charge des points de suspension de l'attribut CSS sur le terminal mobile est plutôt bonne, mais la prise en charge de -webkit-line-clamp est mitigée, notamment sur les machines Android.
Après avoir vérifié les informations, j'ai découvert que -webkit-line-clamp ne figurait pas dans la spécification CSS.
Ensuite, nous essayons d'en implémenter un manuellement et d'exposer l'interface au monde extérieur pour les appels.

Deux idées d'implémentation :

  • Définir le nombre de lignes, afficher le texte dans le nombre de lignes et masquer le texte au-delà du nombre de lignes

  • Définir la partie du contenu total, afficher cette partie, et masquer le texte au-delà de cette partie ;

Méthode de mise en œuvre :

  • Simuler jQuery Pour implémenter le nouveau constructeur sans appeler

, il est à noter que pour le contenu texte, l'attribut "hauteur de ligne" du texte doit être défini dans CSS.

//调用方式:k('#p').ellipsistoText(3), k('#p').ellipsistoLine(2), k('#p').restoretoLine(), k('#p').restoretoText()
(function () {
    var k = function (selector) {
        return new F(selector)
    }
    var F = function (selector) {
        this.ele = document.querySelector(selector);
        if (!this.ele.ori_height) {
            this.ele.ori_height = this.ele.offsetHeight; //用于保存原始高度
        }
        if (!this.ele.ori_html) {
            this.ele.ori_html = this.ele.innerHTML; //用于保存原始内容
        }
    }
    F.prototype = {
        init: function () {
            this.ele.style.height = this.ele.ori_height;
            this.ele.innerHTML = this.ele.ori_html;
        },
        ellipsistoLine: function (l) {
            this.init();
            this.ele.style.cssText = 'overflow: hidden; height: ' + parseInt(window.getComputedStyle(this.ele)['line-height']) * l + 'px';
        },
        ellipsistoText: function (t) {
            this.init();
            var len = (this.ele.ori_html).length * (1/t);
            this.ele.innerHTML = this.ele.ori_html.substr(0, len);
        },
        restoretoLine: function () {
            this.ele.style.height = this.ele.ori_height + 'px';
        },
        restoretoText: function () {
            this.ele.innerHTML = this.ele.ori_html;
        }
    }
    window.k = k;
})(window)
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment utiliser la console JavaScript pour améliorer le processus de travail

Comment utiliser le js natif pour implémenter Ajax

Analyse du bouillonnement d'événements js et capture d'événements

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal