جستجو برای:
  • خانه
  • دوره و کتاب
  • مقالات
    • خانواده جاوا اسکریپت
      • مقالات جاوا اسکریپت
      • مقالات ری اکت و نکست
      • هوش مصنوعی
    • خانواده فرانت
      • مقالات سی اس اس
      • مقالات اچ تی ام ال
    • محیط کار
      • سوالات استخدامی جاوا اسکریپت
      • سوالات استخدامی ری اکت
      • اصطلاحات محیط کار فرانت اند
    • مجله پرنیان
      • تصاویر دوره ها
      • نظرات دانشجویان قدیم
  • سوالات متداول
  • تماس با ما
  • خانواده پرنیان
    • چت خانه
    • دستیار هوش مصنوعی(رایگان!)
    • تایید مدارک
    • پیام یا انتقاد (ناشناس)
    • تعیین سطح زبان انگلیسی
    • پخش لایو رادیوسام
 
  • 09921632445
  • radioarsam[at]gmail.com
  • فروشگاه محصولات
  • بلاگ
  • تماس با ما
  • درباره پارسا قربانیان، موسس مدرسه پرنیان
پارسا قربانیان |گروه آموزشی پرنیان | آموزش حرفه ای طراحی سایت
  • خانه
  • دوره و کتاب
  • مقالات
    • خانواده جاوا اسکریپت
      • مقالات جاوا اسکریپت
      • مقالات ری اکت و نکست
      • هوش مصنوعی
    • خانواده فرانت
      • مقالات سی اس اس
      • مقالات اچ تی ام ال
    • محیط کار
      • سوالات استخدامی جاوا اسکریپت
      • سوالات استخدامی ری اکت
      • اصطلاحات محیط کار فرانت اند
    • مجله پرنیان
      • تصاویر دوره ها
      • نظرات دانشجویان قدیم
  • سوالات متداول
  • تماس با ما
  • خانواده پرنیان
    • چت خانه
    • دستیار هوش مصنوعی(رایگان!)
    • تایید مدارک
    • پیام یا انتقاد (ناشناس)
    • تعیین سطح زبان انگلیسی
    • پخش لایو رادیوسام
0

ورود و ثبت نام

بلاگ پرنیان

پارسا قربانیان |گروه آموزشی پرنیان | آموزش حرفه ای طراحی سایتبلاگمقالاتمقالات جاوا اسکریپتتفاوت متد scroll با IntersectionObserver در جاوااسکریپت

تفاوت متد scroll با IntersectionObserver در جاوااسکریپت

9 جولای 2024
ارسال شده توسط مدیریت
مقالات ، مقالات جاوا اسکریپت
464 بازدید
تفاوت متد scroll با IntersectionObserver در جاوا اسکریپت

شاید برای شما هم این اتفاق افتاده باشد که بین دو مقدار scroll event و IntersectionObserver مانده باشید و اینکه از کدام استفاده کنیم، برایتان یک سوال بزرگ باشد. در این مقاله سعی بر این داریم که به سوال شما پاسخ دهیم.

در اصل این دو بصورت بنیادین با هم متفاوت هستند. scroll یک رخ داد یا event در جاوا اسکریپت میباشد در صورتیکه IntersectionObserver یکی از سه API مبتنی بر ناظر در JavaScript است. دو API دیگر Resize Observer و Mutation Observer هستند.

Intersection Observer به راحتی امکاناتی مانند اسکرول بی‌پایان، بارگذاری تنبل تصاویر و انیمیشن‌های مبتنی بر اسکرول را فراهم می‌کند. این API به شما اجازه می‌دهد تا تغییرات در تلاقی یک عنصر هدف با یک عنصر والد یا با container اصلی سند را به صورت ناهمزمان مشاهده کنید .

در این مقاله کوتاه قصد و هدفمان نوشتن دو مثال با دو روش بالاست. یعنی میخواهیم وقتی اسکرول به المان مورد نظر رسید، ظاهر شود. حال با دو روش این کد زده شده است و انتخاب با شماست.

کد اول با روش event scroll در کلاس دوره نوزدهم مدرسه پرنیان زده شده که در زیر میتوانید کامل شده آن را دانلود و استفاده کنید.

  const span = document.querySelector('span');
    const mainHeight = document.querySelector('main').clientHeight
    const box = document.querySelectorAll('.box')
    box.forEach((val)=>{
        val.setAttribute('data-h', val.offsetTop)
        val.classList.add(val.getAttribute('data-pgh'))
    })

    window.addEventListener('scroll', ()=>{
        let st = window.scrollY
        console.log(st);
        box.forEach((val)=>{
            if(
                (st+300) > val.getAttribute('data-h')
            ){
                val.classList.remove(val.getAttribute('data-pgh'))
            }else{
                val.classList.add(val.getAttribute('data-pgh'))
            }
        })

        // end top///

        if(st > mainHeight/2){
            span.style.opacity='1'
        }else{
            span.style.opacity='0'
        }
    })

دانلود کامل کد با روش اسکرول

Intersection Observer یک API است که برای تشخیص تعامل یک عنصر هدف با عنصر اجداد یا نمای سند استفاده می شود.به عنوان مثال، اگر بخواهیم تشخیص دهیم که آیا عنصری در viewport قابل مشاهده است، می توانیم از این API برای این منظور استفاده کنیم.

به کد زیر توجه کنید:

const target = document.querySelector(".target");
const container = document.querySelector(".container");
const btn = document.querySelector(".btn");
let isVisible = null;

const callBack = (entries) => {
      isVisible = entries[0].isIntersecting;
};

const options = {
      root: container,
      threshold: 1
};

const observer = new IntersectionObserver(callBack, options);

observer.observe(target);

btn.addEventListener("click", () => {
      if (isVisible) {
        alert("Target Element is visible");
  } else {
        alert("Target Element is not visible");
  }
});

در نظر داشته باشید از هر دو مورد بالا میتوانید در ساخت lazy load هم استفاده کنید.

امیدواریم از این مقاله تفاوت متد scroll با IntersectionObserver در جاوااسکریپت نهایت استفاده را برده باشید و آن را با دوستانتان به اشتراک بگذارید. تیم تولید محتوای مدرسه اینترنتی پرنیان این مقاله را تهیه کرده است.

اشتراک گذاری:
درباره مدیریت

شما در حال مطالعه یکی از مقالات آموزشی وبلاگ مدرسه فرانت اند پرنیان هستید. اگر برایتان مفید بود آن را با دوستانتان به اشتراک بگذارید. من پارسا قربانیان ، مدرس با سابقه برنامه نویسی و فرانت اند و اینجا مدرسه فرانت اند پرنیان، میخواهیم در یک معامله برد برد، با هم به آرزوهایمان برسیم.

نوشته های بیشتر از مدیریت
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
در یوتوب
ما را دنبال کنید!
Created by potrace 1.14, written by Peter Selinger 2001-2017
در آپارات
ما را دنبال کنید!

مطالب زیر را حتما مطالعه کنید

Vibe Coding چیست؟ آیا آینده برنامه‌نویسی تغییر کرده است؟
Vibe Coding چیست؟ آیا آینده برنامه‌نویسی تغییر کرده است؟
MCP چیست
MCP چیست و چرا آینده برنامه‌نویسی با هوش مصنوعی را تغییر می‌دهد؟
تفاوت HTMLCollection و NodeList در جاوا اسکریپت
تفاوت HTMLCollection و NodeList در جاوا اسکریپت
State Normalization در فرانت‌اند چیست؟
State Normalization در فرانت‌اند چیست؟
حفظ روحیه برنامه نویسان در شرایط جنگی
حفظ روحیه برنامه نویسان در شرایط جنگی
خبر فوری
اطلاعیه مهم درباره شروع کلاس ها
قدیمی تر تفاوت async و promiss در جاوا اسکریپت
جدیدتر آموزش ساخت استوری اینستاگرام با جاوا اسکریپت

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
نوشته‌های تازه
  • Vibe Coding چیست؟ آیا آینده برنامه‌نویسی تغییر کرده است؟
  • MCP چیست و چرا آینده برنامه‌نویسی با هوش مصنوعی را تغییر می‌دهد؟
  • تفاوت HTMLCollection و NodeList در جاوا اسکریپت
  • State Normalization در فرانت‌اند چیست؟
  • حفظ روحیه برنامه نویسان در شرایط جنگی
دسته‌ها
دوره ها:

کلاس های درحال ثبت نام فرانت اند: 

  • دوره فرانت اند صبح از اوایل آبان
  • دوره جاوا اسکریپت و ری اکت از 31مرداد

دوره فرانت اند پرنیان

 

مدرسه فرانت اند پرنیان

گروه آموزشی پرنیان از سال 92 تاسیس شده و تاکنون ده ها دوره طراحی وب ، CMS ، سئو و بوت کمپ فرانت اند به صورت حضوری و غیر حضوری برگزار کرده است. ما در پرنیان جدیدترین و کاربردی ترین مباحث طراحی و توسعه وب ، سئو و دیجیتال مارکتینگ رو آموزش داده و راه ورود شما عزیزان به بازار کار را هموار کرده ایم.

فهرست سفارشی
  • بلاگ
  • تماس با ما
  • حساب کاربری من
  • درباره پارسا قربانیان، موسس مدرسه پرنیان
  • سبد خرید
  • فروشگاه

لوگوی مدرسه پرنیان

تمام حقوق برای مدرسه فرانت اند پرنیان محفوظ است. سیاست حفظ حریم شخصی

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت