2016-04-10 26 views
1

Javascript kullanarak basit bir tür ve efekt yaratmaya çalışıyorum, ancak yazım efektinden sonra, son harfi siler ve sonra da tanımlanmamış sonsuz bir ekran elde ederim.Basit Tip ve Silme Etkisi Çalışmıyor

<!DOCTYPE html> 
<html> 
<head> 
    <title>Test Typing Effect</title> 
</head> 
<body> 
<script type="text/javascript"> 


window.onload =function() { 
var texttotype = "this is what i want to type"; 
var typedtext = ""; 

function eraze(){ 

if(typedtext != ""){    
    var eraze = setInterval(function(){ 
     typedtext = typedtext.slice(0, typedtext.length -1);      
     document.getElementById('type-here').innerHTML = typedtext; 
      if (typedtext == "") { 
       clearInterval(eraze); 
       return 
      }    
     }, 200);   
} 
} 

if(typedtext == ""){ 
    var i = 0; 
    var id = setInterval(function(){ 
     if(typedtext != texttotype){ 
      typedtext +=texttotype[i]; 
     document.getElementById('type-here').innerHTML = typedtext; 
     } else if (typedtext == texttotype) { 
      eraze();       
     } 
     i++;   
    }, 200);    
} 

} 
</script> 

<p id="type-here"></p> 
</body> 
</html> 

BTW, kod Her parça ayrı ayrı çalışır, yazarak türleri ve silme siler, sadece bunu sonra yazın eraze olsun: İşte benim kodudur. Herhangi bir yön veya öneri çok takdir edilecektir. Teşekkürler!!!!

+0

derloopkat Sonsuz bir tür silme efekti oluşturmak istedim, bu yüzden yazma işlevine bir son vermedim. Yine de, önerdiğiniz şey şu anda metni silmeme izin veren sorunu düzeltir. Bu bir yazının nasıl yapıldığını bilemez misin? Bir süre (gerçek) döngü çalışmıyor, tarayıcımı kapatır. Teşekkürler!!! – rod122

+0

Sonsuza dek yazmak ve silmek için çözümü güncelledim. – derloopkat

cevap

1

Tüm metin zaten yazıldıktan sonra metni yazan işlevi durdurmanız gerekir. Aksi takdirde, dizenin sonuna gider ve sayfaya "undefined" ifadesini ekler.

window.onload = function() { 
var texttotype = "this is what i want to type"; 
var typedtext = ""; 

function eraze() { 

    if (typedtext != "") { 
     var eraze = setInterval(function() { 
      typedtext = typedtext.slice(0, typedtext.length - 1); 
      document.getElementById('type-here').innerHTML = typedtext; 
      if (typedtext == "") { //all done 
       clearInterval(eraze); 
       write(); 
       return 
      } 
     }, 200); 
    } 
} 
function write() { 
    if (typedtext == "") { 
     var i = 0; 
     var keepWriting = setInterval(function() { 
      if (typedtext != texttotype) { 
       typedtext += texttotype[i]; 
       document.getElementById('type-here').innerHTML = typedtext; 
      } else if (typedtext == texttotype) { 
       clearInterval(keepWriting); 
       eraze(); 
       return; 
      } 
      i++; 
     }, 200); 
    } 
} 
write(); 
} 
+0

derloopkat Sonsuz bir tip silme efekti oluşturmak istedim, bu yüzden yazma işlevine bir son vermedim. Yine de, önerdiğiniz şey şu anda metni silmeme izin veren sorunu düzeltir. Bu bir yazının nasıl yapıldığını bilemez misin? Bir süre (gerçek) döngü çalışmıyor, tarayıcımı kapatır. Teşekkürler!! – rod122

+0

Çözümü güncelledim. Bu sonsuza kadar yazacak ve silecektir. Şimdi, yazma fonksiyonu baştan yazmaya başlarken, keepWriting son yazılı karakterden devam eder. Sayfa yüklenen fonksiyonlar ilan edildiğinde olan ilk şey bildirilir ve write() çalıştırılır. – derloopkat

+0

Bu çalışır, teşekkürler !!! – rod122

İlgili konular