CSS से एनीमेशन कैसे बनायें? CSS Animation Tutorial in Hindi

css-animation-tutorial-hindi

जैसा की आप जानते हैं की animation हर किसी के लिए interesting और मजेदार होता है ऐसे में यदि आप इसका  उपयोग अपनी website पर करते हैं तो  इससे आपकी वेबसाइट आपके audience के लिए और भी interesting हो सकती है|

लेकिन website के लिए animation कैसे बनायें? यह सवाल आपके मन में आ रहा होगा, तो चलिए आज आपको  इस article में बताते हैं की कैसे आप बड़ी आसानी से सिर्फ CSS में कोड लिखकर animation बना सकते हैं।

इससे पहले हमने CSS3 transition effects के बारे में आपको बताया था जिनका उपयोग करके भी simple CSS animations डिजाईन किया जा सकता है।

आज हम कुछ CSS के कुछ advanced technique सीखने जा रहे हैं जिनकी मदद से आप बहुत ही आसानी से छोटे-छोटे कोड लिखकर मजेदार और बेहतरीन एनीमेशन बना सकते हैं।

CSS Animation Tutorial in Hindi

CSS में animation create करने से पहले आपको दो properties के बारे में जरूर पता होना चाहिए :

  • Keyframes : animation  कैसे दिखाई देगा उसमे कितने stages होंगे और उनके styles कैसे होंगे ये keyframe से  define किया जाता है|
  • Animation property : @keyframes बनाने के बाद उसे किसी element पर apply करने के लिए animation property का use किया जाता है|

चलिए अब इन दोनों को विस्तार से समझने की कोशिश करते हैं :

CSS Keyframes

इसके द्वारा हम animation के stages को set करते हैं| प्रत्येक @keyframes तीन चीजों से मिलकर बना होता है जो कुछ इस प्रकार हैं:

  1. Animation name: animation का नाम|
  2. Animation stages: हर एक stage को percentage से define किया जाता है| जहाँ 0% का मतलब beginning stage और 100% का मतलब ending state होता है| इन दोनों के बीच multiple stages define किये जा सकते हैं|
  3. CSS properties: CSS styles, जिसे हर stage के लिए define किया जा सकता है|

Example:

<span class="token atrule"><span class="token rule">@keyframes</span> scaleme</span> <span class="token punctuation">{</span>
  <span class="token selector">0%</span> <span class="token punctuation">{</span>
    <span class="token property">transform</span><span class="token punctuation">:</span> <span class="token function">scale</span><span class="token punctuation">(</span>0.1<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token property">opacity</span><span class="token punctuation">:</span> 0<span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  <span class="token selector">60%</span> <span class="token punctuation">{</span>
    <span class="token property">transform</span><span class="token punctuation">:</span> <span class="token function">scale</span><span class="token punctuation">(</span>0.5<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token property">opacity</span><span class="token punctuation">:</span> 1<span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  <span class="token selector">100%</span> <span class="token punctuation">{</span>
    <span class="token property">transform</span><span class="token punctuation">:</span> <span class="token function">scale</span><span class="token punctuation">(</span>1<span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

आप ऊपर example में देख सकते हैं हमने एक keyframes बनाया जिसका नाम scaleme रखा और उसके अंदर तीन stages define किये |

पहले stage में element की size transform property से scale करके छोटा  रखा जाएगा फिर इसे दुसरे stage जो की 60% से start होगा उसमे size  थोडा increase किया जायेगा और finally last stage में element अपने original size में display होगा|

CSS3 Animation Properties

@keyframes define करने के बाद एनीमेशन को properly work कराने के लिए CSS animation properties का use करना आवश्यक है|

Animation properties से @keyframes को किसी selector (या element) के लिए call किया जाता है|

एनीमेशन में multiple properties हो सकते हैं जिनमे से नीचे दिए गये दो properties का use करना जरूरी है:
animation-name: एनीमेशन का नाम, जिसे @keyframes में define किया गया हो

animation-duration: एनीमेशन का duration, seconds (जैसे 5s) या milliseconds (जैसे 100ms) में specify करने के लिए

Example:

<span class="token selector">div</span><span class="token punctuation">{</span>
<span class="token property">animation-duration</span><span class="token punctuation">:</span> 2s<span class="token punctuation">;</span>
<span class="token property">animation-name</span><span class="token punctuation">:</span> scaleme<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

या shorthand syntax का उपयोग कर सकते हैं :

<span class="token selector">div</span><span class="token punctuation">{</span>
<span class="token property">animation</span><span class="token punctuation">:</span> scaleme 2s<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

इस example में हमने पहले बनाये गये keyframes को call करके div element को animate किया है जिसका duration 2 seconds set किया है|

Output


जैसा की हमने बताया animation-name और animation-duration ये दोनों properties सबसे  जरूरी हैं लेकिन इन दोनों के अलावा एनीमेशन के लिए और भी कई सारे additional properties हैं जिनका उयोग करके advanced और complex animations design किये जा सकते हैं|

ये सारे properties नीचे दिए गये हैं:

  • animation-iteration-count
  • animation-timing-function
  • animation-delay
  • animation-direction
  • animation-fill-mode
  • animation-play-state

अब चलिए एक-एक करके इनको समझते हैं और इनके examples देखते हैं:

animation-iteration-count

एनीमेशन कितने बार run होगा यह तय किया जाता है animation-iteration-count property से |

इसकी default value 1 होती है यदि एनीमेशन को लगातार बिना रुके चलाना हो तो उसके लिए value को infinite रखनी होगी|

Synatx:

<span class="token property">animation-iteration-count</span><span class="token punctuation">:</span> 5<span class="token punctuation">;</span>

नीचे example दिया गया है जिसमे एनीमेशन 5 बार run होगा|

animation-timing-function:

Animation की speed curve define करने के लिए animation-timing-function property का use किया जाता है|
इस property की values कुछ इस प्रकार हो सकती है:

  • ease: इससे एनीमेशन की speed starting और ending में slow होती है जबकि बीच में fast होती है| यह default value है|
  • linear: इससे animation speed starting से ending तक same होती है|
  • ease-in: एनीमेशन starting में slow होता है
  • ease-out: एनीमेशन की speed ending में slow हो जाती है
  • ease-in-out: slow start और slow ending के लिए use होता है
  • cubic-bezier(n,n,n,n): खुद से कोई custom timing create करने के लिए इसका उपयोग होगा

Syntax:

<span class="token property">animation-timing-function</span><span class="token punctuation">:</span> ease-in<span class="token punctuation">;</span>

Example:

Animation-Delay

एनीमेशन कब start होगा यह control करने के लिए animation-delay property का उपयोग किया जाता है|

इसकी value second या millisecond में specify किया जाता है | यदि value 2s है तो इसका मतलब है की एनीमेशन 2 seconds के बाद शुरू होगा|

Synatx:

<span class="token property">animation-delay</span><span class="token punctuation">:</span>3s<span class="token punctuation">;</span>

animation-direction

यहाँ पर direction का मतलब है forward और reverse. animation reverse direction में run होगा, forward में होगा या alternate cycle में run होगा यह specify किया जाता है animation-direction property से|

इस property के कुछ values इस प्रकार हो सकते हैं:

  • normal (default): animation forward direction (0% से 100%) में play होगा
  • reverse: reverse direction (100% से 0%) में play करने के लिए
  • alternate: हर odd cycle (1, 3, 5,…) में forward direction और even cycle (2, 4, 6, …) में reverse direction में run करने के लिए|

alternate-reverse: यह alternate का just उल्टा होता है | हर odd cycle में reverse और even cycle में forward direction में play होता है|

Syntax:

<span class="token property">animation-direction</span><span class="token punctuation">:</span> reverse<span class="token punctuation">;</span>

animation-fill-mode:

जब animation running state में नही होता (जब एनीमेशन end हो चुका हो या उसमे कोई delay हो) तब उस element का style कैसा होगा इसे specify करने के लिए animation-fill-mode property का उपयोग होता है|

इसके values कुछ इस प्रकार हो सकते हैं:

  • forwards: जब एनीमेशन finish हो जाता है तब target  element में वह style set हो जाता है जिसे हम final keyframe (100%) में define करते हैं|
  • backwards: एनीमेशनstart होने से पहले, target element पर first keyframe (0%) में define किये गया style apply हो जाता है|
  • both:  element पर forwards और backwards दोनों rules apply हो जाते है |
  • none: यह default value है, by default animation शुरू होने और समाप्त होने पर target element पर कोई style apply नही होता|

Syntax:

<span class="token property">animation-fill-mode</span><span class="token punctuation">:</span> forwards<span class="token punctuation">;</span>

Example:

animation-play-state

animation-play-state property से यह specify किया जाता है की एनीमेशन play हो रहा है या paused है|

इसके values कुछ इस प्रकार हो सकते हैं:

  • playing: एनीमेशन अभी run हो रहा है
  • paused: एनीमेशन अभी paused है

Syntax:

<span class="token property">animation-play-state</span><span class="token punctuation">:</span> paused<span class="token punctuation">;</span>

Example:

आगे पढ़ें: 

आज आपने इस article से basic CSS animations design करना सीख लिया है| यदि आप CSS animation के बारे में कुछ सवाल पूछना चाहते हैं तो आप नीचे comment box का उपयोग कर अपना सवाल पूछ सकते हैं|

Default image
Vivek Vaishnav
नमस्कार, मैं विवेक, WebInHindi का founder हूँ। इस ब्लॉग से आप वेब डिजाईन, वेब डेवलपमेंट, Blogging से जुड़े जानकारियां और tutorials प्राप्त कर सकते हैं। अगर आपको हमारा यह ब्लॉग पसंद आये तो आप हमें social media पर follow कर हमारा सहयोग कर सकते हैं|

Newsletter Updates

Enter your email address below to subscribe to our newsletter

3 Comments

  1. अक्षिता आशीष
    अक्षिता आशीष

    सर आप बहुत अच्छा लिखते है मै आपकी Daily Reader हूँ आप हमेशा बहुत ही ज्ञान वर्धक जानकारिय शेयर करते है …सर आपका बहुत बहुत धन्यवाद !

  2. Very good and precise information.

Leave a Reply