Browser Events

Loading concept...

jQuery Browser Events: When Your Webpage Comes Alive! 🎭

The Story of the Watchful Webpage

Imagine your webpage is like a smart house. This house has special sensors that notice everything:

  • When someone walks through a room (scrolling)
  • When the walls move in or out (resizing)
  • When the house first wakes up in the morning (document loading)

jQuery gives us magic words to make our webpage listen and react to these moments!


🎯 The Three Browser Events We’ll Master

graph TD A["Browser Events"] --> B["Scroll Event"] A --> C["Resize Event"] A --> D["Loading Events"] B --> B1["User scrolls page"] C --> C1["Window size changes"] D --> D1["ready - DOM loaded"] D --> D2["load - Everything loaded"]

📜 The Scroll Event: Watching the Reader’s Journey

What Is It?

Think of reading a long scroll of paper. As you roll it up or down, someone is watching how far you’ve gone. That’s the scroll event!

When Does It Fire?

Every tiny bit of scrolling triggers this event. It’s like a kid saying “Are we there yet?” every second during a car trip!

Simple Example

<script>
$(window).scroll(function() {
  console.log("You're scrolling!");
});
</script>

Real-World Magic: Show How Far You’ve Read

<div id="progress"></div>

<script>
$(window).scroll(function() {
  var scrollTop = $(window).scrollTop();
  var docHeight = $(document).height();
  var winHeight = $(window).height();

  var percent = (scrollTop /
    (docHeight - winHeight)) * 100;

  $('#progress')
    .css('width', percent + '%');
});
</script>

What This Does:

  • Calculates how much you’ve scrolled
  • Shows a progress bar filling up as you read
  • Like a “reading meter” on your page!

Pro Tips for Scroll Events

Tip Why It Matters
Use throttling Scroll fires A LOT - slow it down!
Check scroll direction Know if user goes up or down
Lazy load content Load images only when scrolled into view

📐 The Resize Event: When the Window Changes Shape

What Is It?

Imagine your room can magically grow or shrink. The resize event is like an alarm that rings every time the walls move!

When Does It Fire?

When someone:

  • Drags the browser window edges
  • Rotates their phone
  • Zooms in or out

Simple Example

<script>
$(window).resize(function() {
  var width = $(window).width();
  var height = $(window).height();

  console.log("New size: " +
    width + " x " + height);
});
</script>

Real-World Magic: Responsive Navigation

<nav id="menu">My Menu</nav>

<script>
$(window).resize(function() {
  var width = $(window).width();

  if (width < 600) {
    $('#menu').addClass('mobile');
  } else {
    $('#menu').removeClass('mobile');
  }
});
</script>

What This Does:

  • Watches window width
  • Adds “mobile” class on small screens
  • Removes it on big screens
  • Like a chameleon changing colors!

The Resize Performance Trick

Resize fires many times per second. Here’s how to be smart:

<script>
var resizeTimer;

$(window).resize(function() {
  clearTimeout(resizeTimer);

  resizeTimer = setTimeout(function() {
    // Your code runs ONCE
    // after resizing stops
    console.log("Resize finished!");
  }, 250);
});
</script>

Why This Matters: Instead of running code 100 times, it runs once after you stop resizing!


🚀 Document Loading Events: The Webpage Wake-Up Call

The Two Important Moments

graph TD A["Page Starts Loading"] --> B["HTML Structure Ready"] B --> C["DOM Ready Event"] C --> D["Images &amp; CSS Load"] D --> E["Window Load Event"] style C fill:#90EE90 style E fill:#87CEEB

1. Document Ready: “The House Frame Is Built!”

This fires when the HTML structure is ready, but images might still be loading.

The Classic Way:

<script>
$(document).ready(function() {
  console.log("DOM is ready!");
  // Safe to manipulate elements
});
</script>

The Shortcut Way (Same Thing!):

<script>
$(function() {
  console.log("DOM is ready!");
  // This is the shortcut!
});
</script>

2. Window Load: “Everything Is Completely Finished!”

This fires when everything is loaded - all images, stylesheets, and scripts.

<script>
$(window).on('load', function() {
  console.log("All done loading!");
  // Images are ready now
});
</script>

When to Use Which?

Event Use When…
$(document).ready() You need to work with HTML elements
$(window).on('load') You need image dimensions or everything loaded

Real-World Magic: Loading Spinner

<div id="loader">Loading...</div>
<div id="content" style="display:none">
  Welcome to my site!
</div>

<script>
// Hide loader when ready
$(window).on('load', function() {
  $('#loader').fadeOut();
  $('#content').fadeIn();
});
</script>

What This Does:

  • Shows “Loading…” while page loads
  • Fades out loader when done
  • Fades in the real content
  • Smooth and professional!

🎪 Putting It All Together: The Smart Webpage

Here’s a real example using all three events:

<script>
// 1. When DOM is ready
$(document).ready(function() {
  console.log("Ready to set up!");
});

// 2. When everything loads
$(window).on('load', function() {
  $('#spinner').hide();
});

// 3. When user scrolls
$(window).scroll(function() {
  var scrolled = $(window).scrollTop();
  if (scrolled > 100) {
    $('#backToTop').fadeIn();
  } else {
    $('#backToTop').fadeOut();
  }
});

// 4. When window resizes
$(window).resize(function() {
  adjustLayout();
});
</script>

🧠 Quick Memory Tricks

Event Think Of It As…
scroll “How far have I walked?”
resize “The room is changing size!”
ready “The skeleton is built!”
load “The house is fully decorated!”

⚡ Common Gotchas & Solutions

Problem 1: Scroll Event Fires Too Much!

Solution: Use throttling

<script>
var lastScroll = 0;
$(window).scroll(function() {
  var now = Date.now();
  if (now - lastScroll > 100) {
    // Your code here
    lastScroll = now;
  }
});
</script>

Problem 2: Resize Doesn’t Work on Mobile

Solution: Listen for orientation change too

<script>
$(window).on('resize orientationchange',
  function() {
    // Works on mobile now!
});
</script>

Problem 3: Ready vs Load Confusion

Remember:

  • ready = HTML structure done (faster)
  • load = Everything done (images too)

🎉 You Did It!

You now understand the three main browser events in jQuery:

  1. Scroll - Track reading progress, lazy load content
  2. Resize - Make responsive layouts, adjust UI
  3. Loading - Set up your page, hide loaders

These events make your webpage smart and responsive to what users do!


🔑 Key Takeaways

graph LR A["Browser Events"] --> B["Listen"] B --> C["React"] C --> D["Delight Users!"]
  • Use $(window).scroll() for scroll watching
  • Use $(window).resize() for size changes
  • Use $(document).ready() for DOM setup
  • Use $(window).on('load') for complete loading
  • Always throttle scroll and resize for performance!

Loading story...

Stay Tuned!

Story is coming soon.

Story Preview

Story - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Interactive Preview

Interactive - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Stay Tuned!

Interactive content is coming soon.

Cheatsheet Preview

Cheatsheet - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Stay Tuned!

Cheatsheet is coming soon.

Quiz Preview

Quiz - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Stay Tuned!

Quiz is coming soon.

Flashcard Preview

Flashcard - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Stay Tuned!

Flashcards are coming soon.