JavaScript Document seeking Event: The Complete Guide

JavaScript provides various events to enhance the interactivity and functionality of web pages. One such essential event is the seeking event. This guide will explain everything you need to know about the seeking event. We’ll cover what it is, why it’s useful, where to use it, how to implement it, and when it comes into play. Let’s dive in!

What is the seeking Event?

The seeking event in JavaScript is fired when the user starts moving or jumping to a new position in the media playback. This can occur when the user drags the seek bar or programmatically changes the current playback position.

Why Use the seeking Event?

Using the seeking event is beneficial because it allows you to track when a user is seeking through media. This can be useful for updating the user interface, displaying loading indicators, synchronizing actions with media playback, or providing feedback to users about the media’s current position.

Where Can You Use the seeking Event?

You can use the seeking event on media elements like <audio> and <video>. This event is particularly useful in web applications that include media playback and need to handle user interactions with the seek bar.

How to Use the seeking Event

Let’s dive into some examples to see how the seeking event works in different scenarios.

Basic Example

Here’s a simple example to show how the seeking event works with a video element.

HTML
<video id="video" controls>
  <source src="sample-video.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>
<p id="status">Status: Ready to play ⏯️</p>

<script>
  const video = document.getElementById("video");
  const status = document.getElementById("status");

  video.addEventListener("seeking", () => {
    status.textContent = "Seeking... 🔍";
    console.log("The user is seeking through the video.");
  });

  video.addEventListener("seeked", () => {
    status.textContent = "Playback position changed ⏩";
    console.log("The user has finished seeking.");
  });
</script>

In this example, a message is displayed and logged to the console when the user starts seeking and when the seeking is complete.

Example with Loading Indicator

Let’s see how the seeking event can be used to display a loading indicator when the user is seeking through the media.

HTML
<style>
  #loading {
    display: none;
    color: red;
  }
</style>
<video id="video" controls>
  <source src="sample-video.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>
<p id="loading">Loading... ⏳</p>

<script>
  const video = document.getElementById("video");
  const loadingIndicator = document.getElementById("loading");

  video.addEventListener("seeking", () => {
    loadingIndicator.style.display = "block";
    console.log("Displaying loading indicator...");
  });

  video.addEventListener("seeked", () => {
    loadingIndicator.style.display = "none";
    console.log("Hiding loading indicator...");
  });
</script>

In this example, a loading indicator is displayed when the user is seeking and hidden when the seeking is complete.

Example with Synchronized Actions

Let’s see how the seeking event can be used to synchronize actions with media playback.

HTML
<video id="video" controls>
  <source src="sample-video.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>
<p id="action">Action: None</p>

<script>
  const video = document.getElementById("video");
  const actionDisplay = document.getElementById("action");

  video.addEventListener("seeking", () => {
    actionDisplay.textContent = "Action: Seeking... 🔍";
    console.log("The user is seeking through the video.");
  });

  video.addEventListener("seeked", () => {
    actionDisplay.textContent = `Action: Position changed to ${video.currentTime.toFixed(1)}s ⏩`;
    console.log(`Playback position changed to ${video.currentTime.toFixed(1)} seconds.`);
  });
</script>

In this example, actions are displayed and logged to the console when the user is seeking and when the seeking is complete.

When to Use the seeking Event

The seeking event is particularly useful in scenarios where:

  • You need to track and respond to user interactions with the seek bar.
  • You want to display loading indicators or feedback to users.
  • You need to synchronize actions with media playback when the user changes the playback position.

Comparing seeking with Other Media Events

To understand the seeking event better, let’s compare it with other common media events like play, pause, and timeupdate.

EventDescriptionExample Usage
seekingFired when the user starts moving to a new playback positionTrack seeking actions, display loading indicators
seekedFired when the seeking operation is completedUpdate UI after seeking, log new position
timeupdateFired when the current playback position changesUpdate progress bar, display current time
playFired when media playback is startedStart visual effects, update play button
pauseFired when media playback is pausedPause visual effects, update play button

Code Examples of Different Events

Here’s how you can use some of these events in your code:

HTML
<video id="video" controls>
  <source src="sample-video.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>
<p id="status">Monitoring media events... ⏳</p>

<script>
  const video = document.getElementById("video");
  const status = document.getElementById("status");

  video.addEventListener("seeking", () => {
    status.textContent = "Seeking... 🔍";
  });

  video.addEventListener("seeked", () => {
    status.textContent = `Playback position changed to ${video.currentTime.toFixed(1)}s ⏩`;
  });

  video.addEventListener("play", () => {
    status.textContent = "Playing ▶️";
  });

  video.addEventListener("pause", () => {
    status.textContent = "Paused ⏸️";
  });

  video.addEventListener("timeupdate", () => {
    status.textContent = `Current time: ${video.currentTime.toFixed(1)}s ⏲️`;
  });
</script>

Conclusion

The seeking event in JavaScript is a powerful tool for handling user interactions with the seek bar in media playback. By understanding and using this event, you can create more interactive and user-friendly web applications. Whether you are tracking seeking actions, displaying loading indicators, or synchronizing actions with media playback, the seeking event helps you ensure that your media elements work smoothly and effectively.

Summary

  • What: The seeking event fires when the user starts moving to a new playback position in a media element.
  • Why: It helps in tracking seeking actions, displaying loading indicators, and synchronizing actions with media playback.
  • Where: Use it on media elements like <audio> and <video> to detect when the user is seeking through the media.
  • How: By adding an event listener for seeking and handling the necessary actions.
  • When: Use it whenever you need to manage actions triggered by user interactions with the seek bar to improve user experience.

Feel free to use the examples provided and modify them to suit your needs. Happy coding! 🎉

What are JavaScript Browser Events?

JavaScript browser events are key to creating interactive web applications. These events are actions or occurrences detected by the browser, such as user interactions, document changes, or window modifications. By responding to events like clicks, key presses, and form submissions, developers can enhance user experience and functionality.

This comprehensive list of JavaScript browser events is a valuable reference for developers. It covers a wide range of events, from mouse and keyboard actions to document and window changes. Understanding and handling these events is essential for building responsive and engaging web applications, ensuring a seamless and intuitive user experience.

See List of all JavaScript Browser Events – Cheat Sheet

  • Document events:
    • ended
    • error
    • loadeddata
    • loadedmetadata
    • loadstart
    • pause
    • play
    • playing
    • progress
    • ratechange
    • seeked
    • seeking
    • stalled
    • suspend
    • timeupdate
    • volumechange
    • waiting
    • emptied
    • durationchange
    • cuechange
    • change
    • canplaythrough
    • canplay
    • abort
    • DOMContentLoaded
  • Window events:
    • afterprint
    • beforeprint
    • beforeunload
    • error
    • hashchange
    • load
    • message
    • offline
    • online
    • pagehide
    • pageshow
    • popstate
    • resize
    • scroll
    • storage
    • unload
  • Form events:
    • submit
    • select
    • reset
    • invalid
    • input
    • focus
    • change
    • blur
  • Keyboard events:
    • keyup
    • keypress
    • keydown
  • Mouse events:
    • wheel
    • mouseup
    • mouseover
    • mouseout
    • mousemove
    • mouseleave
    • mouseenter
    • mousedown
    • dblclick
    • contextmenu
    • click

Leave a Reply