Bird
Raised Fist0
Bootsrapmarkup~5 mins

ScrollSpy component in Bootsrap - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the Bootstrap ScrollSpy component?
ScrollSpy automatically updates navigation links based on scroll position, highlighting the section currently visible on the page.
Click to reveal answer
beginner
Which HTML attribute is essential to activate ScrollSpy on the <body> element?
The data-bs-spy="scroll" attribute activates ScrollSpy on the element.
Click to reveal answer
beginner
How do you specify the navigation element that ScrollSpy should update?
Use the data-bs-target attribute with a CSS selector pointing to the navigation container.
Click to reveal answer
beginner
What CSS class does ScrollSpy add to the active navigation link?
ScrollSpy adds the <code>active</code> class to the navigation link corresponding to the visible section.
Click to reveal answer
beginner
Why is it important to have unique IDs on the sections when using ScrollSpy?
Unique IDs on sections allow ScrollSpy to link navigation items to the correct content sections for accurate highlighting.
Click to reveal answer
Which attribute activates ScrollSpy on an element?
Adata-toggle="scroll"
Bdata-bs-toggle="scrollspy"
Cdata-spy="scrollspy"
Ddata-bs-spy="scroll"
What does the data-bs-target attribute specify in ScrollSpy?
AThe scroll container element
BThe offset value for scrolling
CThe navigation element to update
DThe animation speed
Which class does ScrollSpy add to the active navigation link?
Aactive
Bcurrent
Chighlight
Dselected
Where should you place the data-bs-spy="scroll" attribute for ScrollSpy to work on the whole page?
AOn the <body> element
BOn the <nav> element
COn each section element
DOn the <html> element
Why must sections have unique IDs when using ScrollSpy?
ATo enable keyboard navigation
BTo link nav items to sections correctly
CTo improve page loading speed
DTo apply CSS styles automatically
Explain how to set up Bootstrap ScrollSpy on a webpage.
Think about attributes on body and nav, and matching IDs.
You got /5 concepts.
    Describe what happens visually when ScrollSpy is working on a page.
    Focus on the navigation link changes during scrolling.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the Bootstrap ScrollSpy component?
      easy
      A. To lazy load images as you scroll
      B. To create a fixed header at the top of the page
      C. To add animations when scrolling
      D. To highlight navigation links based on the page scroll position

      Solution

      1. Step 1: Understand ScrollSpy functionality

        ScrollSpy tracks which section is visible on the page while scrolling.
      2. Step 2: Identify ScrollSpy's effect on navigation

        It highlights the corresponding navigation link to show the active section.
      3. Final Answer:

        To highlight navigation links based on the page scroll position -> Option D
      4. Quick Check:

        ScrollSpy = Highlight nav links on scroll [OK]
      Hint: ScrollSpy links scroll position to nav highlights [OK]
      Common Mistakes:
      • Confusing ScrollSpy with fixed headers
      • Thinking ScrollSpy adds animations
      • Assuming ScrollSpy lazy loads content
      2. Which attribute is required on the scrollable container to enable Bootstrap ScrollSpy?
      easy
      A. data-bs-spy="scroll"
      B. data-bs-target="#navbar"
      C. data-bs-toggle="scrollspy"
      D. data-bs-scroll="true"

      Solution

      1. Step 1: Identify the attribute that activates ScrollSpy

        The attribute data-bs-spy="scroll" tells Bootstrap to watch scroll events.
      2. Step 2: Differentiate from other attributes

        data-bs-target points to the nav but does not activate ScrollSpy itself.
      3. Final Answer:

        data-bs-spy="scroll" -> Option A
      4. Quick Check:

        Activate ScrollSpy = data-bs-spy="scroll" [OK]
      Hint: Use data-bs-spy="scroll" to enable ScrollSpy [OK]
      Common Mistakes:
      • Using data-bs-toggle instead of data-bs-spy
      • Confusing data-bs-target as activation attribute
      • Adding non-existent data-bs-scroll attribute
      3. Given this HTML snippet, what will happen when you scroll the page?
      <body data-bs-spy="scroll" data-bs-target="#navbar">
        <nav id="navbar">
          <a href="#section1">Section 1</a>
          <a href="#section2">Section 2</a>
        </nav>
        <div id="section1">Content 1</div>
        <div id="section2">Content 2</div>
      </body>
      medium
      A. The navbar will become fixed at the top when scrolling
      B. The page will scroll automatically to section1 on load
      C. The link for the section currently visible will be highlighted in the navbar
      D. Nothing will happen because ScrollSpy requires JavaScript initialization

      Solution

      1. Step 1: Analyze the HTML snippet

        The body has data-bs-spy="scroll" and data-bs-target="#navbar" attributes.
      2. Step 2: Check ScrollSpy initialization requirements

        Bootstrap 5 supports automatic initialization of ScrollSpy via data attributes without explicit JavaScript calls.
      3. Step 3: Expected behavior

        The link corresponding to the section currently visible will be highlighted in the navbar as you scroll.
      4. Final Answer:

        The link for the section currently visible will be highlighted in the navbar -> Option C
      5. Quick Check:

        ScrollSpy highlights nav links based on scroll position [OK]
      Hint: ScrollSpy highlights nav links automatically with data attributes [OK]
      Common Mistakes:
      • Thinking data attributes alone activate highlighting
      • Expecting auto-scroll to sections on load
      • Confusing with sticky/fixed navbar behavior
      4. What is wrong with this ScrollSpy setup?
      <div id="scrollArea" data-bs-spy="scroll" data-bs-target="#menu">
        <nav id="menu">
          <a href="#part1">Part 1</a>
          <a href="#part2">Part 2</a>
        </nav>
        <div id="part1">Content 1</div>
        <div id="part2">Content 2</div>
      </div>
      medium
      A. The scrollable container #scrollArea needs a fixed height and overflow set
      B. The nav element must be outside the scrollable container
      C. The data-bs-target should point to #scrollArea, not #menu
      D. The href attributes in nav links must be full URLs

      Solution

      1. Step 1: Check ScrollSpy container requirements

        ScrollSpy requires the scrollable container to have a fixed height and overflow: auto or scroll to detect scrolling.
      2. Step 2: Identify missing CSS for #scrollArea

        The code lacks CSS to make #scrollArea scrollable, so ScrollSpy won't work properly.
      3. Final Answer:

        The scrollable container #scrollArea needs a fixed height and overflow set -> Option A
      4. Quick Check:

        Scrollable container needs height + overflow [OK]
      Hint: Scrollable container must have fixed height and overflow [OK]
      Common Mistakes:
      • Not setting height and overflow on scroll container
      • Placing nav outside scroll container unnecessarily
      • Using wrong data-bs-target attribute
      • Using full URLs in href instead of section IDs
      5. You want to use ScrollSpy on a page with a fixed top navbar and multiple sections. Which combination of steps is correct to ensure ScrollSpy works properly?
      hard
      A. Add data-bs-spy="scroll" on navbar, set overflow: hidden; on body, and use full URLs in navbar links
      B. Add data-bs-spy="scroll" and data-bs-target on body, set position: relative; on body, and ensure navbar links match section IDs
      C. Add data-bs-spy="scroll" on each section, set position: fixed; on navbar, and use # only in links
      D. Add data-bs-spy="scroll" on html, set overflow: scroll; on navbar, and use external links in navbar

      Solution

      1. Step 1: Enable ScrollSpy on the scroll container

        Usually, body is the scroll container, so add data-bs-spy="scroll" and data-bs-target there.
      2. Step 2: Set position: relative; on the scroll container

        ScrollSpy requires the scroll container to have position: relative; for correct offset calculations.
      3. Step 3: Ensure navbar links correspond to section IDs

        Links in the navbar must have hrefs matching the IDs of the page sections for ScrollSpy to highlight correctly.
      4. Final Answer:

        Add data-bs-spy="scroll" and data-bs-target on body, set position: relative; on body, and ensure navbar links match section IDs -> Option B
      5. Quick Check:

        ScrollSpy setup = data attributes + position + matching links [OK]
      Hint: Set data attributes on body, position relative, matching hrefs [OK]
      Common Mistakes:
      • Adding data-bs-spy on wrong elements
      • Forgetting position: relative on scroll container
      • Using full URLs instead of section IDs in links
      • Setting overflow on navbar instead of scroll container
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard