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

Jak dodać takie transition jak na tej stronie.

Object Storage Arubacloud
0 głosów
145 wizyt
pytanie zadane 5 listopada 2021 w JavaScript przez molik Użytkownik (950 p.)
edycja 5 listopada 2021 przez molik

Cześć!

Buduję duplikat strony eduweb.pl ;p i zatrzymałęm się w miejscu  - https://youtu.be/HaKH13aW8MY

Chodzi mi o efekt takiego łagodnego przejścia. Do czego mam przypisać takie przejście. Nie mogę tego zrozumieć...

Używam czystego javascript-u i mój kod wygląda tak:

(function () {
    const wrapper = document.querySelector(".slider-inner");
    const btnPrev = document.querySelector(".btn-prev");
    const btnNext = document.querySelector(".btn-next");

    btnNext.addEventListener("click", () => {
        console.log("next");
        wrapper.scrollLeft += 280;
    });

    btnPrev.addEventListener("click", () => {
        console.log("prev");
        wrapper.scrollLeft -= 280;
    });
})();

 

1 odpowiedź

+2 głosów
odpowiedź 5 listopada 2021 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 6 listopada 2021 przez molik
 
Najlepsza

Zamiast scrollLeft możesz użyć transform + translateX i wtedy efekt płynności uzyskać dodając transition. Możesz też skorzystać ze scroll-snap (video, dokumentacja).

komentarz 6 listopada 2021 przez molik Użytkownik (950 p.)

Zastosowałem to rozwiązanie z translateX, ale coś nie działa, bo to zamiast przewinąć zawartość to ją przesunęło.. Może coś źle napisałem. Możecie sprawdzić?

(function () {
    const wrapper = document.querySelector(".slider-inner");
    const btnPrev = document.querySelector(".btn-prev");
    const btnNext = document.querySelector(".btn-next");

    btnNext.addEventListener("click", () => {
        console.log("next");
        // wrapper.scrollLeft += 280;
        wrapper.style.cssText =
            "transform: translateX(-280px); transition: .3s transform ease";
    });

    btnPrev.addEventListener("click", () => {
        console.log("prev");
        wrapper.scrollLeft -= 280;
    });
})();

 

komentarz 6 listopada 2021 przez ScriptyChris Mędrzec (190,190 p.)

Bo translateX przesuwa element, a nie go przewija. Ale wizualnie wychodzi praktycznie na to samo.

Możecie sprawdzić?

Żeby to sprawdzić potrzeba jeszcze kodu HTML i CSS (jeśli jakiś jest oprócz tego, który napisałeś w JS).

komentarz 7 listopada 2021 przez molik Użytkownik (950 p.)

Troszkę mi to zajęło ale już działa, oczywiście można to udoskonalić ale...

btnNext.addEventListener("click", () => {
        steps += 100;

        courses.forEach((cours) => {
            cours.style.cssText =
                `transform: translateX(-${steps}px); transition: .3s transform ease`;
        });

    });

    btnPrev.addEventListener("click", () => {

        if (steps > 0) {
            steps -= 100;
        }
        courses.forEach((cours) => {
            cours.style.cssText =
                `transform: translateX(-${steps}px); transition: .3s transform ease`;
        });
    });
})();

 

Podobne pytania

0 głosów
1 odpowiedź 97 wizyt
pytanie zadane 15 maja 2017 w JavaScript przez maciek77 Użytkownik (830 p.)
0 głosów
1 odpowiedź 251 wizyt
pytanie zadane 16 maja 2021 w HTML i CSS przez Tetsu99 Nowicjusz (200 p.)

92,567 zapytań

141,420 odpowiedzi

319,617 komentarzy

61,953 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!

...