Heim > Web-Frontend > CSS-Tutorial > Wie kann JavaScript bestimmte Textzeilen wie „:first-line' von CSS formatieren, außer für eine beliebige Zeile?

Wie kann JavaScript bestimmte Textzeilen wie „:first-line' von CSS formatieren, außer für eine beliebige Zeile?

Barbara Streisand
Freigeben: 2024-11-18 21:48:02
Original
298 Leute haben es durchsucht

How Can JavaScript Style Specific Lines of Text Like CSS's `:first-line` but for Any Line?

Auswählen bestimmter Textzeilen mit JavaScript

Wie können wir bestimmte Textzeilen formatieren, ähnlich dem CSS-Pseudoelement :first-line? , ohne es nur auf die erste Zeile zu beschränken?

Während CSS allein für diese Aufgabe nicht ausreicht, bietet JavaScript eine Lösung.

JavaScript-Implementierung:

Wir können jedes Wort mithilfe von JavaScript in ein Span-Element einschließen:

$(function(){ 
  var p = $('p'); 
  var words = p.text().split(' '); 
  var text = ''; 
  $.each(words, function(i, w){
                   if($.trim(w)) text = text + '<span>' + w + '</span> ' }
        ); //each word 
  p.html(text); 
Nach dem Login kopieren

Um die Zeilennummer für zu bestimmen In jedem Bereich verwenden wir das Größenänderungsereignis des Fensters, um die vertikale Position jedes einzelnen Bereichs zu berechnen span:

  $(window).resize(function(){ 

    var line = 0; 
    var prevTop = -15; 
    $('span', p).each(function(){ 
      var word = $(this); 
      var top = word.offset().top; 
      if(top!=prevTop){ 
        prevTop=top; 
        line++; 
      } 
      word.attr('class', 'line' + line); 
    });//each 

  });//resize 
Nach dem Login kopieren

Gerade/ungerade Zeilen hervorheben:

Zum Hervorheben gerader/ungerade Zeilen kann der Code wie folgt vereinfacht werden:

  $(window).resize(function(){ 

    $('span', p).each(function(){ 
      var word = $(this); 
      var top = word.offset().top; 
      var line = Math.floor(top / 20);
      word.attr('class', (line % 2 == 0 ? 'even' : 'odd'));
    });//each
  });//resize 
Nach dem Login kopieren

Überlegungen:

Bei dieser Methode wird davon ausgegangen, dass Wörter nicht umgebrochen werden innerhalb derselben Zeile, und Änderungen in der Klasse können sich auf die Größe oder Breite der Wörter auswirken.

Beispiel:

[Hier klicken](https://jsbin .com/piwizateni/1/edit?html,css,js,output) für eine funktionierende Demonstration.

Das obige ist der detaillierte Inhalt vonWie kann JavaScript bestimmte Textzeilen wie „:first-line' von CSS formatieren, außer für eine beliebige Zeile?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage