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

Automatycznie dodawanie klasy i jej usunięcie

Object Storage Arubacloud
0 głosów
638 wizyt
pytanie zadane 4 lipca 2016 w JavaScript przez Ardian Początkujący (290 p.)

Witam , potrzebuję uzyskać efekt do takiego kodu :

<div class="box">
    <div class="item">content</div>
    <div class="item">content</div>
    <div class="item">content</div>
</div>

Klasa item domyślnie w CSS jest " display : none " . Chcę żeby automatycznie co 10 sekund skrypt napisany w JavaScript ewentualnie jQuery dodawał klase " active z parametrem display:block". Czyli iteracja po elementach z klasa item , po przejsciu z 3 elementu przejscie do 1. Siędzę już przy tym drugi dzień i nie mogę sobie poradzić , poradniki z youtube przejrzałem i próbowałem i wymiękam na tą chwilę. Ktoś pomoże , wytłumaczy jak to zrobic ?

komentarz 4 lipca 2016 przez Ehlert Ekspert (212,790 p.)
Chcesz dodawać klasę? Nie lepiej zmienić css korzystając z Js'a?
komentarz 4 lipca 2016 przez kubaapk Nałogowiec (44,270 p.)
Lepiej jednak dodawać klasy niż stylować przez js ;)
komentarz 4 lipca 2016 przez Ardian Początkujący (290 p.)
przez JSa ma się odbywać tylko automatyczne dodawanie klasy a po 10 sekundach powinno tę klasę usunąć i dodać do kolejnego elementu , coś jak slider to będzie wyglądać , no i dodam nie chcę pluginów , chciałbym zrozumieć działanie takiej pętli , jestem zmęczony już po 2 dniach myślenia , dopiero się uczę JS i szukam pomocy. Masa tutków jest z samymi <img> albo z navigacja <ul> <li> próbowałem to samo zrobić ale iterować po divach no i klapa. Chciałbym się dowiedzieć czy da się a pewnie się da i jeżeli ktoś jest chętny to proszę wytłumaczyć jak to działa . Dziękuje :D

4 odpowiedzi

0 głosów
odpowiedź 4 lipca 2016 przez kubaapk Nałogowiec (44,270 p.)

https://developer.mozilla.org/pl/docs/Web/API/Window/setInterval

A klasy możesz włączać przez classList.toggle

0 głosów
odpowiedź 4 lipca 2016 przez Ehlert Ekspert (212,790 p.)

Manipulację klasami elementu masz tutaj. Do tego pętla w setTimeout (rekurencja).

0 głosów
odpowiedź 4 lipca 2016 przez Magicone Nałogowiec (45,100 p.)
(function() {
  'use strict';

  var boxElement = document.querySelector('.box');
  var currentElement = 0;

  function changeActive() {
    boxElement.children[currentElement].classList.add('active');
    setTimeout(function() {
      boxElement.children[currentElement].classList.remove('active');
      currentElement = (currentElement + 1) % boxElement.children.length;
      
      changeActive();
    }, 10e3);
  }
})();

Całość opakowana w IIFE, żeby zmienne nie przechodziły do scope globalnego. Do zmiennej boxElement przypisujesz box, który zawiera zmieniające klasę divy. Zmienna currentElement oznacza po prostu pozycję aktywnego elementu. Wywołana funkcja changeActive przypisuje klasę active do elementu oznaczonego przez zmienną currentElement, a po 10 sekundach zdejmuje z niego tę klasę, przekazując ją następnemu. Całość jest powtarzana cyklicznie. ;)

komentarz 4 lipca 2016 przez Ardian Początkujący (290 p.)
dzięki wielkie , już testuję i dam znać czy podołałem :)
–1 głos
odpowiedź 4 lipca 2016 przez mitelak Pasjonat (23,330 p.)
Poczytaj o setTimeOut i setInterval :D

Podobne pytania

0 głosów
3 odpowiedzi 528 wizyt
pytanie zadane 30 czerwca 2020 w JavaScript przez wariacik Użytkownik (680 p.)
0 głosów
1 odpowiedź 121 wizyt
0 głosów
1 odpowiedź 1,576 wizyt
pytanie zadane 11 lutego 2018 w JavaScript przez Krzysztofson Użytkownik (620 p.)

92,632 zapytań

141,500 odpowiedzi

319,878 komentarzy

62,011 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!

...