เมื่อพูดถึงการเคลื่อนไหวด้วย SVGs การปิดที่สำคัญหนึ่งครั้งสามารถเป็นแนวคิดของการจมลงในห้องสมุด JavaScript อย่างไรก็ตามสิ่งนี้ไม่จำเป็นต้องเป็นกรณี CSS สามารถจัดการการเลือกแต่ละเส้นทางภายใน SVG เพื่อสร้างเอฟเฟกต์ เพียงแค่รู้พื้นฐานอาจหมายความว่าเป็นไปได้ที่จะเปิดไอคอนที่ค่อนข้างปรอทเป็นสิ่งที่น่าประทับใจเล็กน้อย ดังนั้นบางทีถึงเวลาที่จะวิ่งผ่านขั้นตอนพื้นฐานของการเพิ่มประสิทธิภาพ SVG และแอนิเมชั่น เมื่อรวมเข้ากับการออกแบบที่แตกต่างกันใช้เวลาไม่นานในการตระหนักว่าความเป็นไปได้ไม่มีที่สิ้นสุด
สำหรับแรงบันดาลใจในการเคลื่อนไหวมากขึ้นลองดูที่คู่มือ Creative Bloq เพื่อ ตัวอย่างภาพเคลื่อนไหว CSS และวิธีการโค้ดพวกเขา
ประหยัด 100 ปอนด์กับตั๋วนกสุดยอดไปจนถึง สร้าง css การประชุมผ่านเว็บหนึ่งวันที่จัดทำโดย Creative Bloq นิตยสาร Web Designer และ Net Magazine จองที่นี่ .
ก่อนอื่นให้สร้าง SVG ให้ทำงานด้วย สำหรับการกวดวิชานี้เราจะใช้กราฟิกที่เรียบง่ายใน Illustrator เมื่อใช้นักวาดภาพประกอบเพื่อส่งออก SVG ลดขนาดของอาร์ตบอร์ดเพื่อให้พอดีกับกราฟิกจากนั้นคลิก 'บันทึกเป็น' เลือก SVG จากเมนูดร็อปดาวน์ 'บันทึกเป็นประเภท' จากนั้น 'รหัส SVG ... ' ในการสนทนาตัวเลือก SVG
ตัดแท็กที่ไม่จำเป็นจะทำให้ภาพง่ายต่อการจัดการ สามารถทำได้ด้วยตนเองโดยคัดลอกรหัสไปยังโปรแกรมแก้ไขที่คุณชื่นชอบและลบแท็กที่ว่างเปล่าและข้อมูลเมตา อีกวิธีหนึ่งคือทรัพยากรที่ยอดเยี่ยมที่เรียกว่า svgomg จะทำสิ่งนี้โดยอัตโนมัติ วางรหัสลงในพื้นที่ 'วางมาร์กอัพ' บนอินเทอร์เฟซ SVGOMG จากนั้นคัดลอกรูปภาพอีกครั้งโดยใช้ปุ่มที่ด้านล่างขวา
เปิดตัวแก้ไขรหัสของคุณเลือกและตั้งค่าเอกสาร HTML เปล่า เราจะเขียนภาพเคลื่อนไหว CSS ในไฟล์ที่เรียกว่า main.css ดังนั้นจึงสร้างสิ่งนี้ด้วย เพื่อให้สิ่งต่าง ๆ มุ่งเน้นไปที่ภาพเคลื่อนไหวเราได้ดึงเข้าสู่ Bootstrap 4.1.3 รุ่น CSS-only เท่านั้น
มาสร้างกระดูกของเค้าโครงของเรากันเถอะและสร้างพื้นที่สำหรับ SVG ของเรา เราได้เพิ่มส่วนหัวและสองคอลัมน์: หนึ่งทางด้านซ้ายสำหรับข้อความบางอย่างและทางด้านขวาซึ่งจะถือ SVG ที่เราจะเคลื่อนไหว เพื่อให้มีชีวิตชีวาหน้าขึ้นให้ใช้ Second, Static, SVG เป็นพื้นหลังบนแท็กร่างกาย
เรากำลังใช้แอนิเมชั่นของเราเพื่อให้การแนะนำที่ด้านบนของหน้าน่าสนใจยิ่งขึ้น วางรหัส SVG ที่เหมาะสมที่สุดลงในคอลัมน์ที่สองในหน้า หากใช้ Bootstrap ให้คลาส SVG img- ของเหลว เพื่อให้แน่ใจว่ามันปรับขนาดบนโทรศัพท์มือถือ
การเพิ่มคลาสลงใน SVG ช่วยให้ CSS เลือกรูปร่างแต่ละภาพภายในรูปภาพ ซึ่งหมายความว่าคุณสามารถเคลื่อนไหวรูปร่างที่แตกต่างกันของภาพในเวลาที่ต่างกันการสร้างเอฟเฟกต์ที่ซับซ้อนมากขึ้น
& lt; SVG & GT;
& lt; g & gt;
& lt; rect class = "rectbackground" width = "147.4107"
ความสูง = "68.7917" x = "31.2946" Y = "114.1042"
rx = "4.5882" ry = "3.9565" เติม = "# 2A7FFF" / & GT;
& lt; path class = "recttext" d = "... " เอฟเฟกต์เอฟเฟกต์ = "non-scaling-stroke" stroke-width = "470476156" font-size = "12" เติม = "# fff"
Fill-Rule = "DeVeodd" Stroke = "# FFF" Stroke-Linecap = "Round" / & GT;
& lt; / g & gt;
& lt; / svg & gt;
การเลือกองค์ประกอบ SVG ของเราใน CSS นั้นเหมือนกับองค์ประกอบอื่น ๆ เราใช้คลาสของเราเพื่อเลือกองค์ประกอบเหล่านั้นภายใน SVG ทั้งสองส่วนของ SVG ของเราจะเริ่มต้นที่ซ่อนอยู่เมื่อโหลดหน้าดังนั้นลองใช้ CSS เพื่อตั้งค่าความทึบขององค์ประกอบทั้งสอง 0 .
path.recttext {
ความทึบ: 0;
}
rect.rectbackground {
ความทึบ: 0;
เราจำเป็นต้องประกาศชื่อและคีย์เฟรมสำหรับภาพเคลื่อนไหวแต่ละภาพเพื่อให้ CSS รู้ว่าสิ่งที่เราต้องการจะทำเมื่อเราขอให้มันมีผล ฉันเลือก TextDraw และ การตั้งค่า ตามที่อธิบายแต่ละภาพเคลื่อนไหว การตั้งค่า จะเป็นอนิเมชั่นสองขั้นตอนที่เรียบง่าย TextDraw จะมีขั้นตอนกลางพิเศษ
@Keyframes TextDraw {
0% {}
50% {}
100% {}
}
@Keyframes rectfade {
จาก{}
ถึง{}
เราเพิ่ม การตั้งค่า แอนิเมชันถึง ที่ตีวงกั้น องค์ประกอบและให้ระยะเวลาหนึ่งวินาที ง่าย Cubic Bezier กำลังถูกใช้เพื่อให้รู้สึกนุ่มนวลขึ้น เราเพิ่ม ส่งต่อ ดังนั้นองค์ประกอบจึงเก็บคุณสมบัติของคีย์เฟรมสุดท้ายเมื่ออนิเมชั่นสิ้นสุดลง
rect.rectbackground {
ความทึบ: 0;
แอนิเมชัน: rectfade 1s cubic-bezier (0.645,
0.045, 0.355, 1) ส่งต่อ;
ด้วย Keyframes เพียงสองอย่างที่เราต้องทำสำหรับสี่เหลี่ยมผืนผ้าของเราคือตั้งค่าชุดเริ่มต้นและเสร็จสิ้นการตั้งค่าแอ็ตทริบิวต์ เริ่มต้นด้วย 1% ความกว้างและเสร็จสิ้น 100% เพื่อให้ 'ขยายไปสู่ผลที่ถูกต้อง' เรายังสามารถตั้งค่า ความทึบ: 1 ถึงคีย์เฟรมสุดท้ายดังนั้นรูปร่างที่จางหายไปในเวลาเดียวกัน
@Keyframes rectfade {
จาก {
ความกว้าง: 1%;
}
ถึง {
ความกว้าง: 100%;
ความทึบแสง: 1;
}
เราจะสร้างเอฟเฟกต์แบบวาดบรรทัดต่อข้อความของเราจากนั้นใช้กรอกเพื่อจางลงในการตั้งค่าภาพเคลื่อนไหวข้อความที่เราให้มัน TextDraw ด้วยระยะเวลาสี่วินาที Cubic Bezier ได้รับการแก้ไขในขั้นตอนนี้เพื่อให้การเคลื่อนไหวที่แตกต่างกันเล็กน้อย
path.recttext {
ความทึบ: 0;
แอนิเมชัน: TextDraw 4S
Cubic-Bezier (.56, -0.04, .32, .7) ไปข้างหน้า;
ข้อความของเราจำเป็นต้องทำงานเช่นเดียวกับสี่เหลี่ยมผืนผ้าได้ทำการซีดจางเสร็จแล้วเนื่องจากสี่เหลี่ยมมีระยะเวลาหนึ่งวินาทีชะลอการเริ่มต้นของภาพเคลื่อนไหวข้อความในเวลานั้น
path.recttext {
ความทึบ: 0;
แอนิเมชัน: TextDraw 4S
Cubic-Bezier (.56, -0.04, .32, .7) ไปข้างหน้า;
อนิเมชั่นล่าช้า: 1s;
เพื่อรับผลการวาดเส้นของเราเราจะใช้ โรคหลอดเลือดสมอง - Dasharray และ Stroke-DashOffset พารามิเตอร์ ค่าของคุณจะแตกต่างกันไปตาม SVG ที่คุณใช้ ในการค้นหาค่าของคุณใช้เครื่องมือนักพัฒนาที่คุณต้องการและเพิ่มขึ้น โรคหลอดเลือดสมอง - Dasharray จาก 0 จนกระทั่งรูปร่างทั้งหมดถูกปกคลุมด้วยหนึ่งจังหวะ
path.recttext {
ความทึบ: 0;
Stroke-Dasharray: 735;
แอนิเมชัน: TextDraw 4S
Cubic-Bezier (.56, -0.04, .32, .7) ไปข้างหน้า;
อนิเมชั่นล่าช้า: 1s;
ตอนนี้เรามีจังหวะขนาดใหญ่ของเราที่ครอบคลุมเส้นทางข้อความทั้งหมดลองชดใช้ด้วยความยาวของตัวเองเพื่อผลักดันให้ออกไปอย่างมีประสิทธิภาพ การใช้ Stroke-DashOffset สำหรับค่าเดียวกันกับเรา ดารย ควรทำ ลองตั้งค่านี้ในคีย์เฟรมแรกของเรา เราจะทำให้รูปร่างเติมโปร่งใสและตั้งจังหวะเป็นสีขาวหากยังไม่ได้
0% {
เติม: RGB (255, 255, 255, 0);
Stroke: #FFF;
Stroke-DashOffset: 800;
ความทึบแสง: 1;
คีย์เฟรมกลางของเราปรากฏที่ 40% ผ่านภาพเคลื่อนไหว เรานำ Stroke-DashOffset กลับไปที่ศูนย์เพื่อให้เส้นประครอบคลุมเส้นทางทั้งหมด เราสามารถเพิ่มการเติมโปร่งใสในขั้นตอนนี้อีกครั้งเพื่อให้แน่ใจว่าการเติมจะปรากฏขึ้นเมื่อรูปวาดเสร็จสมบูรณ์
40% {
Stroke-DashOffset: 0;
เติม: RGB (255, 255, 255, 0.0);
สำหรับส่วนสุดท้ายของแอนิเมชั่นเราจะเติมรูปร่างเป็นสีขาว สิ่งที่เราต้องทำสำหรับคีย์เฟรมสุดท้ายจะเพิ่มค่าอัลฟาของสีเติม สิ่งนี้จะสร้างเอฟเฟกต์ที่จางหายไปของการเติม
100% {
เติม: RGB (255, 255, 255, 1);
Stroke-DashOffset: 0;
ความทึบแสง: 1;
บทความนี้ได้รับการตีพิมพ์ในนิตยสารออกแบบเว็บสร้างสรรค์ นักออกแบบเว็บไซต์ . ซื้อปัญหา 286 หรือ ติดตาม .
อ่านเพิ่มเติม:
เลเยอร์เป็นสิ่งที่ช่วยให้คุณสามารถสร้างโครง..
คนส่วนใหญ่เห็นอินเทอร์เฟซผู้ใช้ทุกวันไม่ว่า..
การสร้างฉากเมือง Sci-Fi Apocalyptic ใน ศิลปะ 3 มิติ เป�..
การวาดภาพท่าทางห้านาทีเป็นเรื่องสนุกมากเพราะมีเวลาเพียงพอที่จะจ�..
Paintch Post-Impressionist Painter Vincent Van Gogh (1853-1890) สร้างการถ่ายภาพตนเองม�..