eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwProblem z animacją CSS
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2014-03-05 23:17:33
    Temat: Problem z animacją CSS
    Od: Marek <p...@s...com>

    Witam,

    Mam pasek poziomy ze zdjęciami:

    <div class="pasek">
    <div class="fotka"></div>
    <div class="fotka"></div>
    <div class="fotka"></div>
    <div class="fotka"></div>
    </div>

    W JS przesuwam ten pasek w lewo i w prawo ustawiając wartość left. Sama
    animacja zachodzi dzięki CSS.

    .pasek {
    transition-property: left;
    transition-duration: 1s;
    }

    Ostatnie zdjęcie jest takie samo jak pierwsze po to aby uzyskać efekt
    zapętlenia w trybie "auto". No i teraz powstaje kłopot. Gdy pojawi się
    ostatnie zdjęcie i chcę szybko wrócić do left: 0 (udając tym samym, że
    nic się nie zmieniło), to dzieje się to płynnie, nawet jeśli ustawię na
    chwilę transition-property: none. No chyba, że ustawię tą wartość z
    dużym wyprzedzeniem czasowym, co nie wchodzi w grę. Natomiast ustawienie
    w/w wartości tuż przed left:0 jest ignorowane - przynajmniej pod IE11.
    Czy wiecie o co chodzi i jak to obejść bez robienia animacji przesuwu w JS?

    --
    Pozdrawiam
    Marek


  • 2. Data: 2014-03-07 08:21:20
    Temat: Re: Problem z animacją CSS
    Od: Borys Pogoreło <b...@p...edu.leszno>

    Dnia Wed, 05 Mar 2014 23:17:33 +0100, Marek napisał(a):

    > dużym wyprzedzeniem czasowym, co nie wchodzi w grę. Natomiast ustawienie
    > w/w wartości tuż przed left:0 jest ignorowane - przynajmniej pod IE11.
    > Czy wiecie o co chodzi i jak to obejść bez robienia animacji przesuwu w JS?

    transition-duration: 0s;

    --
    Borys Pogoreło
    borys(#)leszno,edu,pl


  • 3. Data: 2014-03-07 14:46:20
    Temat: Re: Problem z animacją CSS
    Od: Marek <p...@s...com>

    W dniu 2014-03-07 08:21, Borys Pogoreło pisze:
    >
    > transition-duration: 0s;
    >

    Niestety nie zadziałało :-(

    element.style.transitionDuration=0;
    element.style.left=0;

    powoduje, że blok przewija się do pozycji 0 w czasie 1s (bo tyle jest w
    CSS). Gdy zrobię coś takiego:

    element.style.transitionDuration=0;
    ... pewna przerwa czasowa
    element.style.left=0;

    to zadziała. (IE11)

    Jest jeszcze jeden mankament. Zdarzenie "transitionend" przestaje się
    odpalać, ale to mniejszy problem. Mogę wywołać je jako funkcję. Trochę
    dziwne...

    --
    Pozdrawiam
    Marek

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: