เรียนรู้ Transition เพิ่มลูกเล่นให้กับเว็บเรา ด้วย Svelte Transition
พอดีวันนี้ผมลองทำ Svelte Transition เล่นๆ ก็เลยเอามาแชร์เป็นบทความครับ โดยปกติเว็บทั่วๆไป ก็จะต้องมีการเพิ่มลูกเล่น มี animation มี transition เล็กๆน้อยๆ เพื่อให้เว็บมีชีวิตชีวา
ทีนี้ ปกติเนี่ยไอ้ตัว Transition เนี่ย เราสามารถเขียนเป็น CSS Transition หรือใช้ JavaScript ก็ได้ แต่วันนี้ บทความ จะเป็นการใช้ Svelte ซึ่ง ใน Svelte เนี่ย จะมี built-in transition มาให้เรา 7 แบบคือ fade , blur, fly , slide , scale , draw แล้วก็ crossfade ครับ
เตรียมโปรเจ็ค ด้วยการสร้างโปรเจ็คใหม่ :
svelte/transition
อย่างที่บอกไปก่อนหน้านี้ ตัว functions ที่มากับ Svelte มีด้วยกัน 7 แบบ แต่ละแบบ ก็จะมีบาง parameters ที่ต่างกัน แต่หลักๆ เนี่ย ก็จะมี parameters ที่เหมือนกันเลยคือ
delay
- (default = 0) เราสามารถตั้งให้ transition delay ได้duration
(default = 400ms) คือระยะเวลาที่ให้มัน transitioneasing
(default = linear) เป็น easing function สามารถดูเพิ่มเติม ว่าแต่ละแบบมีอะไรบ้าง ease visualiser
ตัวอย่างการทำ Fade
ตัว fade จะมี syntax แบบนี้
วิธีการใช้งาน กำหนด transition:<name>
ให้กับ element ได้เลยแบบนี้
การกำหนด parameters เช่น เปลี่ยนค่า delay และ duration
เราก็จะได้หน้าเว็บ ที่มีปุ่ม checkbox โดยมันจะทำการ fade เพื่อกด checkbox สามารถเข้าไปดูตัวอย่าง หรือลองอ่านเพิ่มเติมที่ Tutorial นี้ได้ครับ - https://learn.svelte.dev/tutorial/transition
Transition อื่นๆ ก็ทำลักษณะเดียวกันครับ (ต่างกันบาง parameters)
ตัวอย่าง Blur มี amount
มา เพื่อกำหนด ว่าจะให้ blur แค่ไหน
ตัวอย่าง fly กำหนดค่า x และ y เพื่อให้มัน transition to ตำแหน่งอะไร
สุดท้าย ผมทำตัวอย่างเล็กๆน้อยๆ สำหรับการลองใช้ Transition แต่ละแบบ (โดยไม่มี crossfade และ draw นะครับ) ไว้ที่เว็บนี้ครับ
Reference
- Authors
-
Chai Phonbopit
เป็น Web Dev ในบริษัทแห่งหนึ่ง ทำงานมา 10 ปีกว่าๆ ด้วยภาษาและเทคโนโลยี เช่น JavaScript, Node.js, React, Vue และปัจจุบันกำลังสนใจในเรื่องของ Blockchain และ Crypto กำลังหัดเรียนภาษา Rust