• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Samopiszący i usuwający się tekst na ekanie JS

Hosting forpsi easy 1 pln
0 głosów
569 wizyt
pytanie zadane 28 września 2018 w JavaScript przez _Visni4PL_ Obywatel (1,320 p.)

Witam! Chciałem napisać skrypt JS, który najpierw pisze tekst na ekranie, a po chwili go usuwa. Niestety coś poszło nie tak i kod wypisuje tekst normalnie, ale usuwa go natychmiastowo. Od razu dodam: w konsoli nie ma błędów, jestem początkujący ;).

var small_header = document.querySelector('.small-header');
var textToType = '/* You can code it! */';
var letter_remove = textToType.length;

function remove() {
    var remove_interval = setInterval(() => {
    letter_remove--;
    var remove_text = textToType.slice(letter_remove, 1);
    small_header.innerHTML = remove_text;
        if(letter_remove >= 0) {
        clearInterval(remove_interval);
        setTimeout(() => {
            write(textToType);
        }, 2000);
      }
   }, 100);
}

function write(text) {
    var currentIndex = 0;
    var interval = setInterval(() => {
        small_header.innerHTML += text.charAt(currentIndex);
        currentIndex++;

        if(currentIndex >= textToType.length) {
            clearInterval(interval);
            setTimeout(() => {
                remove();
            }, 4000);
        }
    }, 100);
}

write(textToType);

 

2 odpowiedzi

0 głosów
odpowiedź 29 września 2018 przez pablop76 VIP (122,640 p.)
wybrane 30 września 2018 przez _Visni4PL_
 
Najlepsza

Metoda slice() może przyjmować dwa parametry. Pierwszy to indeks (liczony od zera) od którego zaczyna się wydobywanie, a drugi to Indeks (liczony od zera) przed którym kończy się wydobywanie. Jeżeli parametr ten ma wartość ujemną to określa odległość od końca tablicy.

Idąc ty tokiem rozumowania

slice(0,-1) wydobywa kolejne elementy od pierwszego do przedostatniego. A więc to co jest Ci potrzebne przy każdym powtórzeniu funkcji remove(). Ale musi to być wywołanie slice(0,-1) na kopii twojego tekstu i zapisanie go do tej samej kopi, ponieważ ta metoda zwraca kopię tekstu, na którym została wywołana. W ten sposób otrzymasz swój tekst za każdym razem krótszy o jeden znak. Jednoczesne wyświetlenie KOPII tekstu spowoduje wrazenie kasowania znaków od końca.

Powodzenia.

0 głosów
odpowiedź 28 września 2018 przez k.wichura Pasjonat (19,870 p.)
edycja 28 września 2018 przez k.wichura
var remove_text = textToType.slice(0, letter_remove);

i jak wywolujesz write to 

textToType = '/* You can code it! */';
letter_remove = textToType.length;

 

Podobne pytania

0 głosów
2 odpowiedzi 958 wizyt
pytanie zadane 29 listopada 2015 w JavaScript przez movinger Nowicjusz (180 p.)
0 głosów
1 odpowiedź 3,336 wizyt
0 głosów
1 odpowiedź 716 wizyt

92,081 zapytań

140,737 odpowiedzi

317,697 komentarzy

61,401 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia w koszyku, uzyskując rabat aż -50% (w dniach 24.11 - 29.11 z okazji Black Friday, a potem będzie to -30%) na bilety w wersji "Standard"! Więcej informacji na temat akademii znajdziecie tutaj. Dziękujemy Sekurakowi za tak fajną zniżkę dla Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 15% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...