Size: a a a

2021 March 20

СА

Сергей Артёмов... in Svelte [svelt]
ID:0
#sveltekit #docs

Тем временем... доки по svelte-kit подъехали

https://kit.svelte.dev/
Вот Алексей и дождался работёнки)
источник

AS

Alexey Schebelev in Svelte [svelt]
У Алексея и так работёнки валом ) Надеюсь там большая часть от сапёра подойдёт )
источник

DK

Dan Kozlov in Svelte [svelt]
Alexey Schebelev
У Алексея и так работёнки валом ) Надеюсь там большая часть от сапёра подойдёт )
Посмотрел доку — надежды твои не оправдаются :)
источник

DK

Dan Kozlov in Svelte [svelt]
Но надо в любом случае подождать хотя бы пару месяцев, потому что там половина доки сырая, будет очень много изменений.
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Перетёрли мы тут с Марком и вот такое получилось:


<script>
 import { gsap } from "gsap";

 let visible = false;

 function animate(node, isChanged) {
   const timeline = gsap.timeline();

   timeline.to(node, {
     duration: 4,
     opacity: 1
   });

   return {
     update(isChanged) {
       if (timeline.reversed()) {
         timeline.play();
       } else {
         timeline.reverse();
       }
     },
     destroy() {
       return new Promise((res, rej) => {
         // анимация сокрытия - резолвим и уничтожаем
         timeline.eventCallback("onComplete", reject);
         // анимация показа - реджектим и запрещаем уничтожать
         timeline.eventCallback("onReverseComplete", resolve);
       });
     }
   };
 }
</script>

<button on:click={() => visible = !visible}>Toggle</button>

{#if visible}
 <div class="hidden" use:animate={visible}>content</div>
{/if}

<div>
 Random text
</div>

<style>
 .hidden {
   opacity: 0;
 }
</style>
источник

11

1 1 in Svelte [svelt]
Кирилл Спасибович
и вот ему бы проработанная фича с промисами в экшене помогла бы

короче как по мне подобные дискуссии всяко интереснее очередных блог постов с dev.to или откуда там ещё
повтыкал несколько часов в исходники.  насколько я понимаю, самый органично вписывающийся в уже существующий механизм свелтовской анимации способ - это добавить возможность прервать анимацию из функции tick
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Круто было так юзать ?
источник

11

1 1 in Svelte [svelt]
Кирилл Спасибович
Перетёрли мы тут с Марком и вот такое получилось:


<script>
 import { gsap } from "gsap";

 let visible = false;

 function animate(node, isChanged) {
   const timeline = gsap.timeline();

   timeline.to(node, {
     duration: 4,
     opacity: 1
   });

   return {
     update(isChanged) {
       if (timeline.reversed()) {
         timeline.play();
       } else {
         timeline.reverse();
       }
     },
     destroy() {
       return new Promise((res, rej) => {
         // анимация сокрытия - резолвим и уничтожаем
         timeline.eventCallback("onComplete", reject);
         // анимация показа - реджектим и запрещаем уничтожать
         timeline.eventCallback("onReverseComplete", resolve);
       });
     }
   };
 }
</script>

<button on:click={() => visible = !visible}>Toggle</button>

{#if visible}
 <div class="hidden" use:animate={visible}>content</div>
{/if}

<div>
 Random text
</div>

<style>
 .hidden {
   opacity: 0;
 }
</style>
а это надо заменить вызовом timeline.progress()  из tick
источник

КС

Кирилл Спасибович... in Svelte [svelt]
шо то тут не понимайт 🤔
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Походу это потечёт промисами
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Если тоглить visible то будет создаваться новый промис а старый останется висеть pending
источник

11

1 1 in Svelte [svelt]
источник

МТ

Марк Танащук... in Svelte [svelt]
https://svelte.dev/repl/b2176d6cfa874ad6a20c2197d8fb012c?version=3.35.0

Чтобы работала reverse анимация при окончании обычной
источник

МТ

Марк Танащук... in Svelte [svelt]
Хотя в целом тут больше дублирования :(
источник

11

1 1 in Svelte [svelt]
двусторонние анимации - встроганная фича свелта, с гринсоком они стыкуются неплохо
источник

КС

Кирилл Спасибович... in Svelte [svelt]
это ж та тема которая будет fps раз в секунду запускать progress ?
источник

МТ

Марк Танащук... in Svelte [svelt]
1 1
двусторонние анимации - встроганная фича свелта, с гринсоком они стыкуются неплохо
Могло быть и лучше :(

Особенно если бы можно было после each сразу вызывать анимирование всех нод без вероятности того, что анимация массива нод выполнится раньше, чем этот массив заполнится через bind:this
источник

11

1 1 in Svelte [svelt]
Кирилл Спасибович
это ж та тема которая будет fps раз в секунду запускать progress ?
ну да.  прогресс для этого и предназначен как бы
источник

КС

Кирилл Спасибович... in Svelte [svelt]
а как обычный запуск to работает без прогресса ?
источник

КС

Кирилл Спасибович... in Svelte [svelt]
он создаёт транзишен или так же как свелт с транзишенами - n степов на animate ?
источник