EN

موستانگ، وحشیِ دوست داشتنی

پاسخ داده شد
0
0

چطور یک انیمیشن fade in با css بسازیم؟ طوری که چند ثانیه بعد از رندر شدن المان، بصورت fade in نمایشش دهیم؟

  • شما باید برای ارسال دیدگاه شوید
پاسخ عالی
0
0

بصورت زیر می توانید انیمیشن fade in را با css بسازید:

.fade-in {
  opacity: 0; /* Initially hidden */
  animation: fadeIn 1s ease-in-out forwards; /* Apply the animation with 1s duration */
  animation-delay: 1s; /* Delay the animation start by 1s */
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

* animation-delay   تاخیر قبل از شروع انیمیشن را مشخص می کند.

*کافی است تا fade-in را به عنوان کلاس به هر المان html ای که می خواهید این انیمیشن را اجرا کند بدهید.

  • شما باید برای ارسال دیدگاه شوید
0
0

دقت کنین که چون انیمیشن css یک بار و موقع لود صفحه انجام میشه، المان هایی که با اسکرول نشون داده میشن دیگه این انیمیشن رو ندارن. برای اینکه همه المان ها بتونن این انیمیشن رو بگیرن لازمه تا از جاوااسکریپت هم استفاده کنید ( اگه از وردپرس استفاده میکنید و نمیدونید کجا و چطور باید جاوااسکریپت رو بذارید و ران کنید، این پست رو ببینید)

راه‌حل استاندارد با IntersectionObserver:

 

CSS:

.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}

HTML:

<div class="fade-in">بخش اول</div>
<div class="fade-in">بخش دوم</div>
<div class="fade-in">بخش سوم</div>

JAVASCRIPT:

const elements = document.querySelectorAll('.fade-in');

const observer = new IntersectionObserver(entries => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      entry.target.classList.add('show');
      observer.unobserve(entry.target); // فقط یکبار اجرا شود
    }
  });
}, {
  threshold: 0.2
});

elements.forEach(el => observer.observe(el));
  • شما باید برای ارسال دیدگاه شوید
0
0

سلام؛ خیلی ممنون از این کد کاربردی؛ میخواستم بدونم در یک صفحه که محتوا و مطالب زیادی توش وجود دره چیکار باید کرد که با اسکرول روی هر div این افکت اجرا بشه (با اسکرول پایین روی هر div که رسید یکبار دیگه اجرا بشه) آخه اینجوری فقط یکبار اجرا میشه و در div های دیگه که این کلاس رو بهشون میدم دوباره اجرا نمیشه

  • موستانگ
    سلام محمد عزیز، درست میگی، چون انیمیشن css فقط موقع لود صفحه اجرا میشه که خب یکباره و اگه المانی پایین صفحه باشه ، بعد اسکرول دیگه انیمیشن دوباره براش لود نمیشه. کاری که باید بکنی اینه که از جاواسکریپت کمک بگیری. من یه نمونه کد در ادامه توی همین صفحه میذارم که میتونی ازش استفاده کنی.
  • شما باید برای ارسال دیدگاه شوید
نمایش 3 نتایج
پاسخ شما
اگر قبلاً حساب کاربری دارید با پر کردن فیلد های زیر یا به عنوان مهمان ارسال کنید.
نام*
ایمیل*
وب سایت