• 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

Object Storage Arubacloud
0 głosów
660 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 (123,180 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 991 wizyt
pytanie zadane 29 listopada 2015 w JavaScript przez movinger Nowicjusz (180 p.)
0 głosów
1 odpowiedź 3,683 wizyt
0 głosów
1 odpowiedź 815 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich 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 10% 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!

...