தமிழ்

CSS ஸ்க்ரோல் டைம்லைன்களுக்கான ஒரு விரிவான வழிகாட்டி. இது ஸ்க்ரோல் நிலைக்கு ஏற்ப அனிமேஷன்களை இயக்கும் ஒரு சக்திவாய்ந்த வலை நுட்பமாகும். இதன் மூலம் ஈர்க்கக்கூடிய ஊடாடும் பயனர் அனுபவங்களை உருவாக்கலாம்.

CSS ஸ்க்ரோல் டைம்லைன்: ஸ்க்ரோல் நிலையைப் பொறுத்து அனிமேஷன் செய்தல்

ஸ்க்ரோல்-இயக்க அனிமேஷன்கள் வலை வடிவமைப்பில் ஒரு புரட்சியை ஏற்படுத்தி வருகின்றன, பாரம்பரிய நிலையான தளவமைப்புகளுக்கு அப்பாற்பட்ட ஈர்க்கக்கூடிய மற்றும் ஊடாடும் பயனர் அனுபவங்களை வழங்குகின்றன. CSS ஸ்க்ரோல் டைம்லைன்கள் இந்த அனிமேஷன்களை உருவாக்குவதற்கான ஒரு நேட்டிவ் உலாவி தீர்வை வழங்குகின்றன, அனிமேஷன் முன்னேற்றத்தை ஒரு தனிமத்தின் ஸ்க்ரோல் நிலைக்கு நேரடியாக இணைக்கின்றன. இது வலையில் பயனர் ஈடுபாட்டையும் கதைசொல்லலையும் மேம்படுத்துவதற்கான படைப்பு சாத்தியக்கூறுகளின் உலகத்தைத் திறக்கிறது.

CSS ஸ்க்ரோல் டைம்லைன்கள் என்றால் என்ன?

CSS ஸ்க்ரோல் டைம்லைன்கள், ஒரு குறிப்பிட்ட ஸ்க்ரோல் கண்டெய்னரின் ஸ்க்ரோல் நிலையைப் பொறுத்து ஒரு CSS அனிமேஷன் அல்லது மாற்றத்தின் முன்னேற்றத்தைக் கட்டுப்படுத்த உங்களை அனுமதிக்கின்றன. பாரம்பரிய நேர-அடிப்படையிலான அனிமேஷன்களைச் சார்ந்திருப்பதற்குப் பதிலாக, அனிமேஷன் முன்னேற்றமானது ஒரு பயனர் எவ்வளவு தூரம் ஸ்க்ரோல் செய்துள்ளார் என்பதுடன் நேரடியாக இணைக்கப்பட்டுள்ளது. இதன் பொருள், பயனரின் ஸ்க்ரோலிங் நடத்தைக்கு நேரடிப் பதிலளிப்பாக அனிமேஷன் இடைநிறுத்தப்படும், இயங்கும், பின்னோக்கிச் செல்லும் அல்லது வேகமாக முன்னோக்கிச் செல்லும், இது மிகவும் இயல்பான மற்றும் ஊடாடும் அனுபவத்தை உருவாக்குகிறது. ஒரு பக்கத்தில் நீங்கள் கீழே ஸ்க்ரோல் செய்யும்போது நிரம்பும் ஒரு முன்னேற்றப் பட்டியை கற்பனை செய்து பாருங்கள், அல்லது அவை வியூபோர்ட்டில் நுழையும்போது தோன்றி மறையும் தனிமங்கள் - இவை CSS ஸ்க்ரோல் டைம்லைன்களுடன் எளிதில் அடையக்கூடிய விளைவுகள்.

CSS ஸ்க்ரோல் டைம்லைன்களை ஏன் பயன்படுத்த வேண்டும்?

முக்கிய கருத்துகள் மற்றும் பண்புகள்

ஸ்க்ரோல் டைம்லைன்களை திறம்பட பயன்படுத்த, முக்கிய கருத்துகள் மற்றும் CSS பண்புகளைப் புரிந்துகொள்வது முக்கியம்:

1. ஸ்க்ரோல் டைம்லைன்

scroll-timeline பண்பு, அனிமேஷனுக்கான டைம்லைனாகப் பயன்படுத்தப்பட வேண்டிய ஸ்க்ரோல் கண்டெய்னரை வரையறுக்கிறது. நீங்கள் ஒரு பெயரிடப்பட்ட டைம்லைனைக் குறிப்பிடலாம் (எ.கா., --my-scroll-timeline) அல்லது auto (அருகிலுள்ள மூதாதையர் ஸ்க்ரோல் கண்டெய்னர்), none (ஸ்க்ரோல் டைம்லைன் இல்லை), அல்லது root (ஆவணத்தின் வியூபோர்ட்) போன்ற முன்வரையறுக்கப்பட்ட மதிப்புகளைப் பயன்படுத்தலாம்.

/* Define a named scroll timeline */
.scroll-container {
  scroll-timeline: --my-scroll-timeline;
}

/* Use the named timeline in the animation */
.animated-element {
  animation-timeline: --my-scroll-timeline;
}

2. அனிமேஷன் டைம்லைன்

animation-timeline பண்பு ஒரு ஸ்க்ரோல் டைம்லைனை ஒரு அனிமேஷனுக்கு ஒதுக்குகிறது. இந்த பண்பு அனிமேஷனின் முன்னேற்றத்தை குறிப்பிட்ட ஸ்க்ரோல் கண்டெய்னரின் ஸ்க்ரோல் நிலைக்கு இணைக்கிறது. நீங்கள் view() செயல்பாட்டையும் பயன்படுத்தலாம், இது ஒரு தனிமம் வியூபோர்ட்டுடன் வெட்டும்போது ஒரு டைம்லைனை உருவாக்குகிறது.

/* Link the animation to the scroll timeline */
.animated-element {
  animation-timeline: --my-scroll-timeline;
}

/* Use view() for viewport-based animations */
.animated-element {
  animation-timeline: view();
}

3. ஸ்க்ரோல் ஆஃப்செட்கள்

ஸ்க்ரோல் ஆஃப்செட்கள், அனிமேஷனின் தொடக்கத்திற்கும் முடிவிற்கும் ஒத்திருக்கும் ஸ்க்ரோல் டைம்லைனின் தொடக்க மற்றும் இறுதிப் புள்ளிகளை வரையறுக்கின்றன. இந்த ஆஃப்செட்கள், ஸ்க்ரோல் நிலையின் அடிப்படையில் அனிமேஷன் எப்போது தொடங்குகிறது மற்றும் நிற்கிறது என்பதைத் துல்லியமாகக் கட்டுப்படுத்த உங்களை அனுமதிக்கின்றன. இந்த ஆஃப்செட்களை வரையறுக்க நீங்கள் cover, contain, entry, exit போன்ற முக்கிய வார்த்தைகளையும், எண் மதிப்புகளையும் (எ.கா., 100px, 50%) பயன்படுத்தலாம்.

/* Animate when the element is fully visible */
.animated-element {
  scroll-timeline-axis: block;
  animation-timeline: view(block);
  animation-range: entry 0% cover 100%;
}

/* Start animation 100px from the top, end when bottom is 200px from viewport bottom */
.animated-element {
  scroll-timeline-axis: block;
  animation-timeline: view(block);
  animation-range: 100px exit 200px;
}

4. ஸ்க்ரோல் டைம்லைன் அச்சு

scroll-timeline-axis பண்பு, ஸ்க்ரோல் டைம்லைன் எந்த அச்சில் முன்னேறுகிறது என்பதைக் குறிப்பிடுகிறது. இதை block (செங்குத்து ஸ்க்ரோலிங்), inline (கிடைமட்ட ஸ்க்ரோலிங்), both (இரு அச்சுகளும்), அல்லது auto (உலாவியால் தீர்மானிக்கப்படுகிறது) என அமைக்கலாம். `view()` பயன்படுத்தும்போது, ​​அச்சை வெளிப்படையாகக் குறிப்பிடுவது பரிந்துரைக்கப்படுகிறது.

/* Define the scroll timeline axis */
.scroll-container {
  scroll-timeline-axis: y;
}

/* With view */
.animated-element {
  scroll-timeline-axis: block;
}

5. அனிமேஷன் வரம்பு

`animation-range` பண்பு, அனிமேஷனின் தொடக்கத்திற்கும் (0%) முடிவிற்கும் (100%) ஒத்திருக்கும் ஸ்க்ரோல் ஆஃப்செட்களை (தொடக்க மற்றும் இறுதிப் புள்ளிகள்) வரையறுக்கிறது. இது குறிப்பிட்ட ஸ்க்ரோல் நிலைகளை அனிமேஷனின் முன்னேற்றத்துடன் பொருத்த உங்களை அனுமதிக்கிறது.

/* Map the entire scroll range to the animation */
.animated-element {
  animation-range: entry 0% cover 100%;
}

/* Start the animation halfway through the scroll range */
.animated-element {
  animation-range: 50% 100%;
}

/* Use pixel values */
.animated-element {
  animation-range: 100px 500px;
}

நடைமுறை உதாரணங்கள் மற்றும் பயன்பாட்டு வழக்குகள்

ஈர்க்கக்கூடிய அனிமேஷன்களை உருவாக்க CSS ஸ்க்ரோல் டைம்லைன்களை எவ்வாறு பயன்படுத்துவது என்பதற்கான சில நடைமுறை உதாரணங்களை ஆராய்வோம்:

1. முன்னேற்றப் பட்டி (Progress Bar)

ஸ்க்ரோல்-இயக்க அனிமேஷன்களுக்கான ஒரு உன்னதமான பயன்பாட்டு வழக்கு, பயனர் பக்கத்தில் கீழே ஸ்க்ரோல் செய்யும்போது நிரம்பும் ஒரு முன்னேற்றப் பட்டி ஆகும். இது பயனர் உள்ளடக்கத்தில் எவ்வளவு தூரம் முன்னேறியுள்ளார் என்பதற்கான காட்சிப் பின்னூட்டத்தை வழங்குகிறது.

/* CSS */
.progress-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background-color: #eee;
  z-index: 1000;
}

.progress-bar {
  height: 5px;
  background-color: #4CAF50;
  width: 0%;
  animation: fillProgressBar linear;
  animation-timeline: view();
  animation-range: entry 0% cover 100%;
  transform-origin: 0%;
  animation-fill-mode: forwards;
}

@keyframes fillProgressBar {
  to {
    width: 100%;
  }
}

/* HTML */
<div class="progress-container">
  <div class="progress-bar"></div>
</div>
<div class="content">
  <p>... your content here ...</p>
</div>

இந்த குறியீடு பக்கத்தின் மேலே ஒரு நிலையான முன்னேற்றப் பட்டியை உருவாக்குகிறது. பயனர் பக்கத்தில் கீழே ஸ்க்ரோல் செய்யும்போது fillProgressBar அனிமேஷன் படிப்படியாக முன்னேற்றப் பட்டியின் அகலத்தை 0% முதல் 100% வரை அதிகரிக்கிறது. animation-timeline: view() அனிமேஷனை வியூபோர்ட்டின் ஸ்க்ரோல் முன்னேற்றத்துடன் இணைக்கிறது, மேலும் `animation-range` ஸ்க்ரோலிங்கை காட்சி முன்னேற்றத்துடன் இணைக்கிறது.

2. படம் மெதுவாகத் தோன்றுதல் (Image Fade-In)

படங்கள் வியூபோர்ட்டில் நுழையும்போது ஒரு நுட்பமான ஃபேட்-இன் விளைவை உருவாக்க நீங்கள் ஸ்க்ரோல் டைம்லைன்களைப் பயன்படுத்தலாம், இது உங்கள் உள்ளடக்கத்தின் காட்சி முறையீட்டை மேம்படுத்துகிறது.

/* CSS */
.fade-in-image {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeIn linear;
  animation-timeline: view();
  animation-range: entry 25% cover 75%;
  animation-fill-mode: both;
}

@keyframes fadeIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* HTML */
<img src="image.jpg" class="fade-in-image" alt="Image">

இந்த குறியீடு ஆரம்பத்தில் படத்தை மறைத்து அதன் இறுதி நிலைக்கு சற்று கீழே நிலைநிறுத்துகிறது. படம் வியூபோர்ட்டில் ஸ்க்ரோல் ஆகும்போது, fadeIn அனிமேஷன் படிப்படியாக ஒளிபுகாநிலையை அதிகரித்து படத்தை அதன் அசல் நிலைக்கு நகர்த்துகிறது, இது ஒரு மென்மையான ஃபேட்-இன் விளைவை உருவாக்குகிறது. `animation-range` குறிப்பிடுவது என்னவென்றால், படத்தின் மேல் விளிம்பு வியூபோர்ட்டில் 25% இருக்கும்போது அனிமேஷன் தொடங்கி, கீழ் விளிம்பு வியூபோர்ட்டில் 75% இருக்கும்போது முடிவடைகிறது.

3. ஒட்டும் கூறுகள் (Sticky Elements)

ஸ்க்ரோலிங்கின் போது கூறுகள் வியூபோர்ட்டின் மேலே ஒட்டிக்கொள்ளும் "ஸ்டிக்கி" விளைவுகளை அடையுங்கள் - ஆனால் மேம்பட்ட கட்டுப்பாடு மற்றும் மாற்றங்களுடன். பயனர் கீழே ஸ்க்ரோல் செய்யும்போது ஒரு நேவிகேஷன் பார் சுருக்கப்பட்ட பதிப்பாக மென்மையாக மாறுவதை கற்பனை செய்து பாருங்கள்.

/*CSS*/
.sticky-container {
  height: 200px; /* Adjust to your needs */
  position: relative;
}

.sticky-element {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #f0f0f0;
  padding: 20px;
  box-sizing: border-box;
  animation: stickyAnimation linear;
  animation-timeline: view();
  animation-range: entry 0% cover 20%; /* Adjust range as needed */
  animation-fill-mode: both;
  z-index: 10;
}

@keyframes stickyAnimation {
  0% {
    position: absolute;
    top: 0;
  }
  100% {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #ddd; /* Change color to indicate stickiness */
  }
}

/* HTML */
<div class="sticky-container">
  <div class="sticky-element">My Sticky Element</div>
</div>

இந்த எடுத்துக்காட்டில், கூறு வியூபோர்ட்டின் மேல் 20%-க்குள் நுழையும்போது `position: absolute` இலிருந்து `position: fixed` க்கு மாறுகிறது, இது ஒரு மென்மையான "ஒட்டும்" விளைவை உருவாக்குகிறது. நடத்தையைத் தனிப்பயனாக்க, கீஃப்ரேம்களுக்குள் `animation-range` மற்றும் CSS பண்புகளை சரிசெய்யவும்.

4. பாராலாக்ஸ் ஸ்க்ரோலிங் விளைவு

பயனர் ஸ்க்ரோல் செய்யும்போது உள்ளடக்கத்தின் வெவ்வேறு அடுக்குகள் வெவ்வேறு வேகத்தில் நகரும் ஒரு பாராலாக்ஸ் ஸ்க்ரோலிங் விளைவை உருவாக்கவும், இது பக்கத்திற்கு ஆழத்தையும் காட்சி ஆர்வத்தையும் சேர்க்கிறது.

/* CSS */
.parallax-container {
  position: relative;
  height: 500px; /* Adjust to your needs */
  overflow: hidden;
}

.parallax-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}

.parallax-layer--bg {
  background-image: url("background.jpg");
  animation: parallaxBg linear;
  animation-timeline: view();
  animation-range: entry 0% cover 100%;
  transform-origin: 50% 0%;
  animation-fill-mode: both;
}

.parallax-layer--fg {
 background-image: url("foreground.png");
  animation: parallaxFg linear;
  animation-timeline: view();
  animation-range: entry 0% cover 100%;
  transform-origin: 50% 0%;
  animation-fill-mode: both;
}

@keyframes parallaxBg {
 to {
    transform: translateY(50px); /* Adjust for parallax speed */
 }
}

@keyframes parallaxFg {
 to {
   transform: translateY(100px); /* Adjust for parallax speed */
 }
}

/* HTML */
<div class="parallax-container">
  <div class="parallax-layer parallax-layer--bg"></div>
  <div class="parallax-layer parallax-layer--fg"></div>
</div>

இந்த எடுத்துக்காட்டு வெவ்வேறு பின்னணிப் படங்களுடன் இரண்டு அடுக்குகளை உருவாக்குகிறது. `parallaxBg` மற்றும் `parallaxFg` அனிமேஷன்கள் அடுக்குகளை வெவ்வேறு வேகத்தில் மொழிபெயர்க்கின்றன, இது பாராலாக்ஸ் விளைவை உருவாக்குகிறது. ஒவ்வொரு அடுக்கின் வேகத்தைக் கட்டுப்படுத்த கீஃப்ரேம்களில் `translateY` மதிப்புகளை சரிசெய்யவும்.

5. உரை வெளிப்படும் அனிமேஷன்

பயனர் ஒரு குறிப்பிட்ட புள்ளியைக் கடந்து ஸ்க்ரோல் செய்யும்போது உரையை எழுத்து எழுத்தாக வெளிப்படுத்தவும், இது கவனத்தை ஈர்த்து உள்ளடக்கத்தின் கதைசொல்லல் அம்சத்தை மேம்படுத்துகிறது.

/* CSS */
.text-reveal-container {
  position: relative;
  overflow: hidden;
}

.text-reveal {
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  animation: textRevealAnimation steps(1) forwards;
  animation-timeline: view();
  animation-range: entry 25% cover 75%;
  animation-fill-mode: both;
  width: 0;
}

@keyframes textRevealAnimation {
  to {
    width: 100%;
  }
}

/* HTML */
<div class="text-reveal-container">
  <span class="text-reveal">This text will be revealed as you scroll.</span>
</div>

இந்த எடுத்துக்காட்டு உரையை எழுத்து எழுத்தாக வெளிப்படுத்த `steps(1)` டைமிங் செயல்பாட்டைப் பயன்படுத்துகிறது. `width: 0` ஆரம்பத்தில் உரையை மறைக்கிறது, மேலும் `textRevealAnimation` படிப்படியாக அகலத்தை அதிகரித்து முழு உரையையும் வெளிப்படுத்துகிறது. உரை வெளிப்படும் அனிமேஷன் எப்போது தொடங்குகிறது மற்றும் முடிவடைகிறது என்பதைக் கட்டுப்படுத்த `animation-range` ஐ சரிசெய்யவும்.

உலாவி இணக்கத்தன்மை மற்றும் பாலிஃபில்கள்

CSS ஸ்க்ரோல் டைம்லைன்கள் ஒப்பீட்டளவில் ஒரு புதிய தொழில்நுட்பம், மற்றும் உலாவி ஆதரவு இன்னும் வளர்ந்து வருகிறது. 2023 இன் பிற்பகுதியில், Chrome மற்றும் Edge போன்ற முக்கிய உலாவிகள் நல்ல ஆதரவை வழங்குகின்றன. Firefox மற்றும் Safari இந்த அம்சத்தை செயல்படுத்துவதில் தீவிரமாக செயல்பட்டு வருகின்றன. உற்பத்தியில் ஸ்க்ரோல் டைம்லைன்களை செயல்படுத்துவதற்கு முன் தற்போதைய உலாவி இணக்கத்தன்மையை சரிபார்ப்பது அவசியம். ஆதரவு நிலையை சரிபார்க்க நீங்கள் Can I use போன்ற ஆதாரங்களைப் பயன்படுத்தலாம்.

ஸ்க்ரோல் டைம்லைன்களை நேட்டிவ் ஆக ஆதரிக்காத உலாவிகளுக்கு, இதேபோன்ற செயல்பாட்டை வழங்க நீங்கள் பாலிஃபில்களைப் பயன்படுத்தலாம். ஒரு பாலிஃபில் என்பது ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி விடுபட்ட அம்சத்தை செயல்படுத்தும் ஒரு ஜாவாஸ்கிரிப்ட் குறியீடாகும். CSS ஸ்க்ரோல் டைம்லைன்களுக்கு பல பாலிஃபில்கள் கிடைக்கின்றன, இது பழைய உலாவிகளில் கூட இந்த அம்சத்தைப் பயன்படுத்த உங்களை அனுமதிக்கிறது.

அணுகல்தன்மை பரிசீலனைகள்

ஸ்க்ரோல்-இயக்க அனிமேஷன்கள் பயனர் அனுபவத்தை மேம்படுத்தும் அதே வேளையில், உங்கள் வலைத்தளம் ஊனமுற்ற பயனர்கள் உட்பட அனைவராலும் பயன்படுத்தக்கூடியதாக இருப்பதை உறுதிசெய்ய அணுகல்தன்மையைக் கருத்தில் கொள்வது முக்கியம்.

சிறந்த நடைமுறைகள் மற்றும் குறிப்புகள்

CSS ஸ்க்ரோல் டைம்லைன்களை திறம்பட பயன்படுத்துவதற்கான சில சிறந்த நடைமுறைகள் மற்றும் குறிப்புகள் இங்கே:

அனிமேஷன் வடிவமைப்பிற்கான உலகளாவிய பரிசீலனைகள்

உலகளாவிய பார்வையாளர்களுக்காக அனிமேஷன்களை வடிவமைக்கும்போது, இந்த புள்ளிகளை மனதில் கொள்ளுங்கள்:

முடிவுரை

CSS ஸ்க்ரோல் டைம்லைன்கள் ஈர்க்கக்கூடிய மற்றும் ஊடாடும் வலை அனிமேஷன்களை உருவாக்க ஒரு சக்திவாய்ந்த மற்றும் திறமையான வழியை வழங்குகின்றன. அனிமேஷன் முன்னேற்றத்தை ஸ்க்ரோல் நிலைக்கு இணைப்பதன் மூலம், நீங்கள் மிகவும் இயக்கவியல், பதிலளிக்கக்கூடிய மற்றும் பயனர் நட்பு அனுபவங்களை உருவாக்கலாம். உலாவி ஆதரவு இன்னும் வளர்ந்து வரும் நிலையில், CSS ஸ்க்ரோல் டைம்லைன்களைப் பயன்படுத்துவதன் நன்மைகள் - மேம்படுத்தப்பட்ட செயல்திறன், ஒரு விளக்கமளிக்கும் அணுகுமுறை மற்றும் மேம்பட்ட பயனர் அனுபவம் - அவற்றை நவீன வலை உருவாக்குநர்களுக்கு ஒரு மதிப்புமிக்க கருவியாக ஆக்குகின்றன. நீங்கள் ஸ்க்ரோல் டைம்லைன்களுடன் பரிசோதனை செய்யும்போது, அணுகல்தன்மைக்கு முன்னுரிமை அளிக்கவும் மற்றும் உங்கள் பார்வையாளர்களின் உலகளாவிய சூழலைக் கருத்தில் கொள்ளவும் நினைவில் கொள்ளுங்கள், உண்மையிலேயே உள்ளடக்கிய மற்றும் ஈர்க்கக்கூடிய வலை அனுபவங்களை உருவாக்க.

இந்த அற்புதமான புதிய தொழில்நுட்பத்தை ஏற்றுக்கொண்டு, உங்கள் வலைத் திட்டங்களுக்கு படைப்பு சாத்தியக்கூறுகளின் உலகத்தைத் திறக்கவும். வலை அனிமேஷனின் எதிர்காலம் இங்கே உள்ளது, அது ஸ்க்ரோலால் இயக்கப்படுகிறது!