Heim Web-Frontend js-Tutorial Einfache Implementierung des Angular-Textfaltungs- und Erweiterungseffekts

Einfache Implementierung des Angular-Textfaltungs- und Erweiterungseffekts

Dec 18, 2017 am 11:43 AM
angular 折叠 文字

Angular-Textfaltungs- und -erweiterungseffekt ist auch eine sehr interessante Funktion. In diesem Artikel wird hauptsächlich die prinzipielle Analyse der Angular-Textfaltungs- und -erweiterungskomponente vorgestellt Referenz. Ich hoffe, es kann allen helfen.

Ich habe eine Angular-Textfaltungskomponente geschrieben. Der Effekt ist wie folgt:


Der Effekt nach dem Falten


Geben Sie den gesamten Code zuerst ein Um hinzuzufügen, was Sie benötigen, ersetzen Sie einfach den angezeigten Text {{designer.des}} durch die Daten, die an Ihren Router gebunden werden müssen

.directive('textfold', function() {
    return {
      restrict: 'EA',
      template: &#39;<p style="font-size: 14px; border-left:5px solid #dddddd; padding: 15px; padding-bottom: 10px; margin-bottom: 15px; margin-top: 15px;">&#39; + &#39;<span id="textfold" style="display:block; overflow:hidden;">{{designer.des}}</span>&#39; + &#39;<br />&#39; + &#39;<span style="color: #1bb7ac; position: relative; bottom: 10px;" ng-click="more(this)">{{isMore}}</span>&#39; + &#39;</p>&#39;,
      link: function(scope, element, attrs) {
        var height;
        var maxheight;
        function textfold() {
          height = angular.element(&#39;#textfold&#39;).height();
          maxheight = angular.element(&#39;#textfold&#39;).height();
        }
        scope.$watch(&#39;designer.des&#39;, function(data) {
          if (data) {
            textfold();
          }
        })
        var isExtend = true;
        scope.isMore = "折叠";
        scope.more = function() {
          var minheight = 23;
          if (isExtend) {
            if (height >= minheight) {
              document.getElementById(&#39;textfold&#39;).style.height = height + "px";
              setTimeout(function() {
                scope.more();
              }, 1);
              height -= 10;
            } else {
              scope.isMore = "查看更多...";
              scope.$apply();
              isExtend = !isExtend;
              height += 10;
            }
          } else {
            if (height <= maxheight) {
              document.getElementById(&#39;textfold&#39;).style.height = height + "px";
              setTimeout(function() {
                scope.more();
              }, 1);
              height += 10;
            } else {
              scope.isMore = "折叠";
              scope.$apply();
              isExtend = !isExtend;
              height -= 10;
            }
          }
        }
      }
    }
  })
Nach dem Login kopieren
My Satz-für-Satz-Analyse unten Die Idee dieser Komponente

Zunächst muss es darin bestehen, die komponentenbasierte Vorlage und den Verwendungsmodus von Angular zu definieren

restrict: &#39;EA&#39;,
template: &#39;<p style="font-size: 14px; border-left:5px solid #dddddd; padding: 15px; padding-bottom: 10px; margin-bottom: 15px; margin-top: 15px;">&#39; + &#39;<span id="textfold" style="display:block; overflow:hidden;">{{designer.des}}</span>&#39; + &#39;<br />&#39; + &#39;<span style="color: #1bb7ac; position: relative; bottom: 10px;" ng-click="more(this)">{{isMore}}</span>&#39; + &#39;</p>&#39;,
Nach dem Login kopieren
EA ist, das Plug-in kann im DOM mithilfe von Elementen und Attributen angezeigt werden, entweder in der Form p textfold="Wsscat">

Nach der Wiederverwendung dieser Komponente definieren wir mit link eine Funktion

var height;
var maxheight;
Nach dem Login kopieren
Eine dieser beiden Variable ist die Höhe nach dem Falten zu diesem Zeitpunkt (dies ist nach dem Erweitern. Sie ändert sich während des Faltvorgangs kontinuierlich. Nach dem endgültigen Falten entspricht sie der Höhe, die man erhält, wenn ein Text vollständig erweitert wird

<). 🎜>

Diese beiden Sätze sind tatsächlich sehr wichtig. Wenn wir die Höhe des Textes ermitteln, müssen wir die Änderung des Textes erfassen (die Höhe, nachdem der Text vollständig gerendert wurde). Daher verwenden wir „scope.$watch“, um die Änderung von „designer.des“ zu erfassen, wenn die Daten nicht leer sind, d. h. nachdem der Text gerendert wurde
function textfold() {
          height = angular.element(&#39;#textfold&#39;).height();
          maxheight = angular.element(&#39;#textfold&#39;).height();
        }
        scope.$watch(&#39;designer.des&#39;, function(data) {
          if (data) {
            textfold();
            scope.more();
          }
        })
Nach dem Login kopieren

, dann führe die Callback-Funktion textfold aus, um die Höhe des aktuellen Textes zu erhalten. Ich habe diese Methode vorübergehend ausprobiert, um die Höhe nach dem Rendern zu erhalten
if (data) {
            textfold();
          }
Nach dem Login kopieren

Bei sequentieller Ausführung anstelle von Callback



erhält nur das Span-Tag Es ist nur die Standardhöhe
angular.element(&#39;#textfold&#39;).height()
Nach dem Login kopieren

Sie können auch einen kleinen Trick hinzufügen Fügen Sie hier einen Satz hinzu Wenn wir die Seite betreten, befindet sie sich standardmäßig im minimierten Zustand. Wenn wir diesen Effekt schreiben, lassen wir den Text normalerweise zuerst expandieren, um die Höhe zu erhalten. Dann kehren wir in den gefalteten Zustand zurück, um den gefalteten Effekt zu erzielen Textstatus der eingehenden Seite


var isExtend = true; dieser Satz soll den folgenden Scope.more in den gefalteten Zustand des ersten Zweigs eintreten lassen

if (data) {
            textfold();
            scope.more();
          }
Nach dem Login kopieren

Dieser Satz ist eine Rekursion, die tatsächlich der Implementierung der Textfelderweiterungsanimation von jQuerys Animation entspricht, mit der Ausnahme, dass hier eine Rekursion verwendet wird, um den Status kontinuierlich zu beurteilen und den Höhenwert zu ändern 🎜>Ändern Sie es dann, indem Sie „scope.isMore“ ändern, um mehr zu sehen ... oder zu reduzieren

Da hier DOM-Manipulation verwendet wird

setTimeout(function() {
                scope.more();
              }, 1);
Nach dem Login kopieren

Fügen Sie am besten unten einen weiteren Satz hinzu



, um die DOM-Änderungen zu erhalten

Tatsächlich ist die allgemeine Idee sehr einfach und auch andere Teile sind leicht zu verstehen. Sie können es ausprobieren.
document.getElementById(&#39;textfold&#39;).style.height = height + "px";
Nach dem Login kopieren

Verwandte Empfehlungen:


css2D Special Effects Transform--Text Folding Effect_html/css_WEB-ITnose

scope.$apply();
Nach dem Login kopieren
JavaScript kompatibel mit IE6 close Beispiele von Umsetzung von Falt- und Entfaltungseffekten

Empfohlene Artikel zum Thema Falten

Das obige ist der detaillierte Inhalt vonEinfache Implementierung des Angular-Textfaltungs- und Erweiterungseffekts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie runde Bilder und Texte in ppt So erstellen Sie runde Bilder und Texte in ppt Mar 26, 2024 am 10:23 AM

Zeichnen Sie zunächst einen Kreis in PPT, fügen Sie dann ein Textfeld ein und geben Sie den Textinhalt ein. Legen Sie abschließend die Füllung und den Umriss des Textfelds auf „Keine“ fest, um die Erstellung kreisförmiger Bilder und Texte abzuschließen.

Wie füge ich in Word Punkte zum Text hinzu? Wie füge ich in Word Punkte zum Text hinzu? Mar 19, 2024 pm 08:04 PM

Wenn wir täglich Word-Dokumente erstellen, müssen wir manchmal Punkte unter bestimmten Wörtern im Dokument hinzufügen, insbesondere wenn es Testfragen gibt. Um diesen Teil des Inhalts hervorzuheben, gibt Ihnen der Herausgeber Tipps zum Hinzufügen von Punkten zu Text in Word. Ich hoffe, dass es Ihnen helfen kann. 1. Öffnen Sie ein leeres Word-Dokument. 2. Fügen Sie beispielsweise Punkte unter den Worten „So fügen Sie Punkte zum Text hinzu“ hinzu. 3. Wir wählen zunächst mit der linken Maustaste die Wörter „So fügen Sie Punkte zum Text hinzu“ aus. Beachten Sie, dass Sie, wenn Sie in Zukunft Punkte zu diesem Wort hinzufügen möchten, zunächst das Wort mit der linken Maustaste auswählen müssen . Heute fügen wir diesen Wörtern Punkte hinzu, daher haben wir mehrere Wörter ausgewählt. Wählen Sie diese Wörter aus, klicken Sie mit der rechten Maustaste und klicken Sie im Popup-Funktionsfeld auf Schriftart. 4. Dann erscheint so etwas

Freigelegte Google Pixel 9 Pro Fold-Telefonhülle: 6,4-Zoll-Außenbildschirm, 8,02-Zoll-Innenbildschirm Freigelegte Google Pixel 9 Pro Fold-Telefonhülle: 6,4-Zoll-Außenbildschirm, 8,02-Zoll-Innenbildschirm Jun 25, 2024 pm 02:35 PM

Laut Nachrichten vom 25. Juni veröffentlichte die Quelle ytechb gestern (24. Juni) einen Blogbeitrag, in dem sie ein Rendering der Google Pixel 9 Pro Fold-Handyhülle teilte, in dem noch einmal das Design der Rückseite dieses Faltbildschirms gezeigt wurde. Laut früheren Nachrichten wird Google im Oktober dieses Jahres die Pixel-9-Serie von Mobiltelefonen herausbringen. Zusätzlich zu den drei Telefonen der Pixel-9-Serie wird auch Pixel Fold in die Pixel-9-Serie aufgenommen und offiziell als Pixel 9 bezeichnet Pro Fold. Die diesmal ausgestellte Telefonhülle stammt vom Zubehörhersteller Torro. Die Online-Shops des Unternehmens in Großbritannien und den USA haben die Produkttelefonhülle gelistet und das Design und die Displaygröße des Telefons bekannt gegeben. Die Seite zeigt eine große Anzahl von Renderings von Pixel 9 Pro Fold-Telefonhüllen

So installieren Sie Angular unter Ubuntu 24.04 So installieren Sie Angular unter Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js ist eine frei zugängliche JavaScript-Plattform zum Erstellen dynamischer Anwendungen. Es ermöglicht Ihnen, verschiedene Aspekte Ihrer Anwendung schnell und klar auszudrücken, indem Sie die Syntax von HTML als Vorlagensprache erweitern. Angular.js bietet eine Reihe von Tools, die Sie beim Schreiben, Aktualisieren und Testen Ihres Codes unterstützen. Darüber hinaus bietet es viele Funktionen wie Routing und Formularverwaltung. In dieser Anleitung wird erläutert, wie Angular auf Ubuntu24 installiert wird. Zuerst müssen Sie Node.js installieren. Node.js ist eine JavaScript-Ausführungsumgebung, die auf der ChromeV8-Engine basiert und es Ihnen ermöglicht, JavaScript-Code auf der Serverseite auszuführen. In Ub sein

Samsungs 10.000 Yuan teures faltbares Telefon W25 enthüllte: 5-Megapixel-Unterbildschirm-Frontkamera und dünneres Gehäuse Samsungs 10.000 Yuan teures faltbares Telefon W25 enthüllte: 5-Megapixel-Unterbildschirm-Frontkamera und dünneres Gehäuse Aug 23, 2024 pm 12:43 PM

Laut Nachrichten vom 23. August steht Samsung kurz vor der Markteinführung eines neuen Falthandys W25, das voraussichtlich Ende September vorgestellt wird. Es wird entsprechende Verbesserungen bei der Frontkamera unter dem Bildschirm und der Gehäusedicke mit sich bringen. Berichten zufolge wird das Samsung W25 mit dem Codenamen Q6A mit einer 5-Megapixel-Unterbildschirmkamera ausgestattet sein, was eine Verbesserung gegenüber der 4-Megapixel-Kamera der Galaxy Z Fold-Serie darstellt. Darüber hinaus werden die Frontkamera mit externem Bildschirm und die Ultraweitwinkelkamera des W25 voraussichtlich 10 bzw. 12 Millionen Pixel groß sein. Vom Design her ist das W25 im zusammengeklappten Zustand etwa 10 mm dick und damit etwa 2 mm dünner als das Standard-Galaxy Z Fold 6. In Bezug auf den Bildschirm verfügt das W25 über einen externen Bildschirm von 6,5 Zoll und einen internen Bildschirm von 8 Zoll, während das Galaxy Z Fold6 über einen externen Bildschirm von 6,3 Zoll und einen internen Bildschirm von 8 Zoll verfügt.

Ein Artikel über serverseitiges Rendering (SSR) in Angular Ein Artikel über serverseitiges Rendering (SSR) in Angular Dec 27, 2022 pm 07:24 PM

Kennen Sie Angular Universal? Es kann dazu beitragen, dass die Website eine bessere SEO-Unterstützung bietet!

Wie man PHP und Angular für die Frontend-Entwicklung verwendet Wie man PHP und Angular für die Frontend-Entwicklung verwendet May 11, 2023 pm 04:04 PM

Mit der rasanten Entwicklung des Internets wird auch die Front-End-Entwicklungstechnologie ständig verbessert und iteriert. PHP und Angular sind zwei Technologien, die in der Frontend-Entwicklung weit verbreitet sind. PHP ist eine serverseitige Skriptsprache, die Aufgaben wie die Verarbeitung von Formularen, die Generierung dynamischer Seiten und die Verwaltung von Zugriffsberechtigungen übernehmen kann. Angular ist ein JavaScript-Framework, mit dem Single-Page-Anwendungen entwickelt und komponentenbasierte Webanwendungen erstellt werden können. In diesem Artikel erfahren Sie, wie Sie PHP und Angular für die Frontend-Entwicklung verwenden und wie Sie diese kombinieren

Das Samsung Galaxy Z Flip 6-Modell wurde erstmals enthüllt: schmalere Ränder, Falten sind immer noch vorhanden Das Samsung Galaxy Z Flip 6-Modell wurde erstmals enthüllt: schmalere Ränder, Falten sind immer noch vorhanden Jun 22, 2024 am 03:28 AM

Laut Nachrichten vom 21. Juni haben ausländische Medien kürzlich Modellfotos des Samsung Galaxy Z Flip 6 im Internet veröffentlicht. Aus dem Bild geht hervor, dass die Ränder des Samsung Galaxy Z Flip 6 weiter verengt werden, was bedeutet, dass die Breite des Telefons im zusammengeklappten Zustand verringert werden kann und es außerdem für einen bequemeren Halt und eine bessere Tragbarkeit sorgt . Darüber hinaus ist das Modell des Galaxy ZFlip6 im Vergleich zur Vorgängergeneration ZFlip5 quadratischer und das Kameramodul auf der Rückseite wird voraussichtlich einen neuen Kamerasensor verwenden. Von vorne betrachtet sind die Falten des Telefons jedoch immer noch relativ offensichtlich. Wenn man jedoch bedenkt, dass es sich bei dem durchgesickerten Modell um ein Modelltelefon handelt, kann es einige Unterschiede zum echten Telefon geben, sodass es nur als Referenz dient. Was die Leistungskonfiguration angeht, Galaxy

See all articles