2016-06-08 14 views
6

Sono solo un po 'perplesso su qualcosa al momento ho il seguente codice che funziona come previsto, tutto va bene con esso. Tuttavia vorrei apportare alcune modifiche minori, poiché mi piacerebbe che la seguente funzione fosse in grado di inserire il markup html all'interno del testo stesso i.e;Inserimento di HTML con JS

var str = "Let's get Future Ready!"; 
var split = str.split(""); 
var counter = 0; 

var SI = setInterval(function() { 

    var typeText = $('.typetext'); 
    typeText.append(split[counter]); 
    counter++ 
    if(counter == str.length){clearInterval(SI)} 

},100) 

Quindi al momento, questa funzione accetta un array, di dividere e quindi utilizzando il metodo setInterval ho iterata la lunghezza della stringa. Ciò consente al testo di apparire come se fosse digitato.

Come potete vedere, il mio valore iniziale di str è 'var str = "Prendiamo il futuro pronto!";'

Tuttavia vorrei aggiungere una pausa per il mio valore str 'var str = "Let' s Get
Future Ready!"'

In primo luogo è possibile? In secondo luogo, se qualcuno potesse offrirmi qualche consiglio, sarei grato, grazie.

risposta

1

Quindi vuoi inserire un'interruzione di riga nel testo HTML che inserisci?

Inserire un

<br /> 

nella matrice nel punto in cui si desidera che il testo break.For l'inserimento di un elemento in una matrice sguardo alla funzione di giuntura() di javascript: http://www.w3schools.com/jsref/jsref_splice.asp

ad esempio con il codice:

var str = "Let's get Future Ready!"; 
var split = str.split(""); 
var counter = 0; 
split = split.splice(18, 0, "<br />"); 
+0

Hey juli0r che è corretto. Al momento legge tutto il testo su una riga che è quello che volevo che facesse. Ma ora vorrei aggiungere un
dopo get e before Future in modo che digiti su una nuova riga. È possibile? Grazie. – Troy

+1

Ho modificato il mio post. Array.splice() è la cosa che stai cercando credo. È possibile aggiungere facilmente un elemento in una matrice all'indice specificato. – juli0r

+0

Grazie per il vostro aiuto juli0r +1 – Troy

6

il mio suggerimento è quello di sostituire il carattere | con <br> quando si esegue il ciclo. Dateci un'occhiata qui: https://jsfiddle.net/s04zbfcc/

var str = "Let's get|Future Ready!"; 
var split = str.split(""); 
var counter = 0; 

var SI = setInterval(function() { 

    var typeText = $('.typetext'); 

    typeText.append(split[counter] == '|' ? '<br>' : split[counter]); 
    counter++ 

    if(counter == str.length) { 
     clearInterval(SI) 
    } 

},100) 
+0

Grazie per il vostro feedback Lo apprezzo, ho usato il metodo di juli0r perché era il più conveniente. Grazie! – Troy

+2

Questo è molto meglio in quanto non dipende più dalla stringa che si desidera visualizzare – user3136777

+0

Domanda è cosa succede se il testo cambia? O se vuoi fare due interruzioni di riga. Investire in un codice buono, manutenibile e flessibile è sempre una buona idea. –

1

Controllare il frammento di seguito. spiegazione nei commenti

var str = "Let's get Future Ready!"; 
 
var split = str.split(""); 
 
var counter = 0; 
 

 
var SI = setInterval(function() { 
 

 
    var typeText = $('.typetext'); 
 
    typeText.append(split[counter]); 
 
    counter++ 
 
    if(typeText.text()=="Let's get")//check the text and see if it has Let's get 
 
     typeText.append("<br/>");//if yes append br there 
 
    if(counter == str.length){ 
 
     clearInterval(SI); 
 
    } 
 

 
},100)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="typetext"></div>

+1

Hey, grazie per il feedback, tutti questi metodi che tutti hanno suggerito sembrano applicabili alla mia situazione! Grazie ancora. – Troy