programersko pitanje

User Friendly

Buduća legenda
Poruka
25.007
Video sam jedan templejt web sajta u kome se na stranici smenjuje tekst koji se prikazuje slovo po slovo, da bi na kraju ispisa recenice se pojavio kursor koji brise celu rec odjednom slovo po slovo unazad. Majstori su to uradili preko animacije u css, ali mene je to zaintrigiralo da probam da izvrsim replikaciju u programu python posto ne znam nijedan drugi programski jezik (znam, epik fejl). Ovo sam uspeo da uradim:

Python:
import time
text = ["Hello, i am User_Freindly", "Working as a Freelancer", "Serbian designer"]
while True:
    for i in text:
        for x in i:
            print(x, end="")
            time.sleep(0.3)   
        print("\n")

Sad, ovaj kod stampa slovo po slovo i kad dodje do kraja recenice on predje u sledeci red. Sad mene zanima da li je moguce otstampati elemente liste text[0-2] u jednom redu tako da se prikaze prvo text[0] pa da on nestane i da se odstampa zatim text[1].
Meni to deluje nemoguce, ali mozda nisam dovoljno skilled. Moze kod u bilo kom jeziku ako je to moguce.
 
Video sam jedan templejt web sajta u kome se na stranici smenjuje tekst koji se prikazuje slovo po slovo, da bi na kraju ispisa recenice se pojavio kursor koji brise celu rec odjednom slovo po slovo unazad. Majstori su to uradili preko animacije u css, ali mene je to zaintrigiralo da probam da izvrsim replikaciju u programu python posto ne znam nijedan drugi programski jezik (znam, epik fejl). Ovo sam uspeo da uradim:

Python:
import time
text = ["Hello, i am User_Freindly", "Working as a Freelancer", "Serbian designer"]
while True:
    for i in text:
        for x in i:
            print(x, end="")
            time.sleep(0.3)
        print("\n")

Sad, ovaj kod stampa slovo po slovo i kad dodje do kraja recenice on predje u sledeci red. Sad mene zanima da li je moguce otstampati elemente liste text[0-2] u jednom redu tako da se prikaze prvo text[0] pa da on nestane i da se odstampa zatim text[1].
Meni to deluje nemoguce, ali mozda nisam dovoljno skilled. Moze kod u bilo kom jeziku ako je to moguce.
Uh, evo mog resenja u javascriptu... malo zajebano ali radi

JavaScript:
  const textList = ["Hello, i am User_Freindly", "Working as a Freelancer", "Serbian designer"];
  const text = document.getElementById("text");
  let sentenceIndex = 0;
  let wordIndex = 0;
 
  const myInterval = setInterval(() => {
    const currentSentence = textList[sentenceIndex];
    text.innerHTML = currentSentence.slice(0, wordIndex + 1);
    wordIndex++;
    if (wordIndex === currentSentence.length) {
      const deleteInterval = setInterval(() => {
        text.innerHTML = currentSentence.slice(0, wordIndex);
        wordIndex--;
        if (wordIndex < 0) {
          sentenceIndex++;
          if (sentenceIndex >= textList.length) {
            sentenceIndex = 0;
          }
          wordIndex = 0;
          clearInterval(deleteInterval);
        }
      }, 10);
    }
  }, 350);
 

Back
Top