Тема: Чому не працює нескінченна анімація

я ще вчуся, і ось пару днів як застряг над питанням, як зробити нескінченну анімацію саме на js, а саме питання в данний момент в тому що не працює setInterval, ось ссилка на мій код в пісочниці, там побачете червону смужку, вона чомусь не хочє нескінченно обертатись
https://codepen.io/sponge_yan/pen/XeaavJ

Подякували: 221VOLT1

2

Re: Чому не працює нескінченна анімація

Якщо цікавить готове рішення, то є спеціальний плагін.
http://jqueryrotate.com/

3 Востаннє редагувалося FakiNyan (02.10.2017 21:06:07)

Re: Чому не працює нескінченна анімація

так ви встановлюєте транзішн і трансформ поворота для елементу в стані спокою, дивно, що воно навіть один раз так робить.
Саме на js ви можете то все зробити просто змінюючи кут повороту кожні 20мс, наприклад
https://jsfiddle.net/ec626nfo/
(тут елемент обирається через jQuery, але то мона легко зробити і на ванільному js)

Але ви ж юзаєте jQuery, а в ньому є свої спеціальні методи для анімації. Читайте про jQuery, і там все буде (я ще з ним не працював особливо).

А озьдо чисто js https://jsfiddle.net/ec626nfo/1/

Подякували: 221VOLT, yan.volkovich, ostap34PHP, leofun014

4 Востаннє редагувалося yan.volkovich (02.10.2017 21:17:54)

Re: Чому не працює нескінченна анімація

я не розумію чому так відбувається, але дякую :) а саме я не розумію цього "deg++"

5 Востаннє редагувалося FakiNyan (02.10.2017 21:20:47)

Re: Чому не працює нескінченна анімація

то ви навіть інкрементів не знаєте?
а є ще ось так --deg і таке deg-- і таке ++deg
ну то воно повертає значення deg і збільшує його на 1, так що при слідуючому виклику тої хвункції воно вже буде на 1 більшим

6

Re: Чому не працює нескінченна анімація

yan.volkovich написав:

нескінченну анімацію саме на js,
https://codepen.io/sponge_yan/pen/XeaavJ

Так на чистому JS чи на jQuery?
Можна для прикладу ось так :

var deg = 10;
setInterval(function () {
                deg += 2;
                $(".poloska").css('transform', 'rotate(' + deg + 'deg)');
            }, 10);

7 Востаннє редагувалося yan.volkovich (02.10.2017 21:23:25)

Re: Чому не працює нескінченна анімація

ні, я не вірно виразився, я розумію інкременти, я не розумію чому в даної функціі треба це писати, тобто setInterval це як цикл?

8

Re: Чому не працює нескінченна анімація

fed_lviv написав:
yan.volkovich написав:

нескінченну анімацію саме на js,
https://codepen.io/sponge_yan/pen/XeaavJ

Так на чистому JS чи на jQuery?
Можна для прикладу ось так :

var deg = 10;
setInterval(function () {
                deg += 2;
                $(".poloska").css('transform', 'rotate(' + deg + 'deg)');
            }, 10);

на jQuery, але в jQuery ж нема альтернативи setInterval ? ну тобто, як по іншому написати теж саме але на jQuery

9

Re: Чому не працює нескінченна анімація

setInterval то просто виклик функції через заданий проміжок часу
погугліть animate від jQuery

Подякували: yan.volkovich1

10

Re: Чому не працює нескінченна анімація

yan.volkovich написав:

на jQuery, але в jQuery ж нема альтернативи setInterval ? ну тобто, як по іншому написати теж саме але на jQuery

На jQuery ось так і написати, проте, якщо вам просто потрібно крутити елемент вічно то все набагато легше CSS:
...
animation-iteration-count: infinite;
...
@keyframes xxx{
    from {
        transform:rotate(0deg);
    }
    to {
        transform:rotate(360deg);
    }
}
...

11 Востаннє редагувалося yan.volkovich (02.10.2017 21:43:33)

Re: Чому не працює нескінченна анімація

я гуглив animate, але в мене нічого не вийшло, може ви мені покажете як теж саме зробити через animate? через css я знаю як зробити, але мені дуже цікаво як зробити через jQuery, це для того щоб краще розуміти jQuery. я так вчуся :)

12

Re: Чому не працює нескінченна анімація

fed_lviv написав:
yan.volkovich написав:

на jQuery, але в jQuery ж нема альтернативи setInterval ? ну тобто, як по іншому написати теж саме але на jQuery

На jQuery ось так і написати, проте, якщо вам просто потрібно крутити елемент вічно то все набагато легше CSS:
...
animation-iteration-count: infinite;
...
@keyframes xxx{
    from {
        transform:rotate(0deg);
    }
    to {
        transform:rotate(360deg);
    }
}
...

ще ім'я треба і тривалість, і функцію інтерполяційну мона змінити на лінійну. бо ease-in по замовчуванню, здається

13

Re: Чому не працює нескінченна анімація

yan.volkovich написав:

я гуглив animate, але в мене нічого не вийшло, може ви мені покажете як теж саме зробити через animate? через css я знаю як зробити, але мені дуже цікаво як зробити через jQuery, це для того щоб краще розуміти jQuery. я так вчуся :)

Так приклад написаний ж на jQuery. Animate виконуэ анімацію протягом певного часу ось і все.