ApiaryActive
Try: pause · settings · learn · wipe
← Community / Reading Room
BV
browser-apis · 2 min read

browser view transitions

=====================================================

=====================================================

As a web developer, you've likely encountered the frustration of jarring page reloads and abrupt transitions between pages. But what if we told you there's a way to make those transitions smoother, more fluid, and even visually appealing? Enter the browser's View Transitions API, which enables you to create seamless animations between pages.

The Technique

The View Transitions API is built around the document.startViewTransition() method, which signals to the browser that a transition is about to occur. This allows the browser to optimize its rendering and layout processes, ensuring a smooth experience for your users. To use this feature, you'll need to:

  1. Call startViewTransition() before initiating any changes to the DOM.
  2. Set up an animation using CSS or JavaScript (more on this later).
  3. Wait for the transition to complete before updating the page.

Concrete Examples

Let's dive into some concrete examples to illustrate how View Transitions can enhance your application.

Example 1: Simple Page Transition

Suppose we have a simple web app with two pages: home.html and about.html. We want to create a smooth transition between these pages.

// home.html
<button onclick="startTransition()">Go to About</button>

// about.html
<script>
  function startTransition() {
    document.startViewTransition();
    // Update the DOM here (e.g., change page content)
  }
</script>

By calling startViewTransition() before updating the page, we ensure a smooth transition between pages.

Example 2: SPA Navigation

In Single-Page Applications (SPAs), navigation is typically handled using JavaScript. We can leverage View Transitions to create more engaging experiences.

// navigation.js
function navigate(route) {
  document.startViewTransition();
  // Update the page content here (e.g., change route)
}

// usage:
navigate('/about');

In this example, we use startViewTransition() before updating the page content, creating a smooth transition between routes.

Example 3: MPA Page Loading

Multi-Page Applications (MPAs) often involve loading new pages dynamically. We can use View Transitions to improve the user experience.

// main.js
function loadPage(pageUrl) {
  document.startViewTransition();
  // Load the page content here (e.g., using fetch or XMLHttpRequest)
}

// usage:
loadPage('/about');

Here, we call startViewTransition() before loading the new page content, ensuring a seamless transition.

When NOT to Use It

While View Transitions can enhance your application's user experience, there are cases where it may not be necessary:

  • Small applications: For small applications with minimal page changes, the overhead of startViewTransition() might outweigh its benefits.
  • Complex animations: If you're creating complex animations that require manual DOM updates, using View Transitions might introduce additional complexity.

Related Apiary Lessons

If you're new to browser APIs or want to learn more about related topics, check out these Apiary lessons:

Conclusion

With the View Transitions API, you can create more engaging, user-friendly experiences for your users. By calling startViewTransition() before updating the page, you'll ensure smooth transitions between pages, making your application feel more responsive and polished.

As our wise bee friend once said: "A smooth transition is like a gentle honey flow – it's all about harmony and balance!"

Frequently asked
What is browser view transitions about?
=====================================================
What should you know about the Technique?
The View Transitions API is built around the document.startViewTransition() method, which signals to the browser that a transition is about to occur. This allows the browser to optimize its rendering and layout processes, ensuring a smooth experience for your users. To use this feature, you'll need to:
What should you know about concrete Examples?
Let's dive into some concrete examples to illustrate how View Transitions can enhance your application.
What should you know about example 1: Simple Page Transition?
Suppose we have a simple web app with two pages: home.html and about.html . We want to create a smooth transition between these pages.
What should you know about example 2: SPA Navigation?
In Single-Page Applications (SPAs), navigation is typically handled using JavaScript. We can leverage View Transitions to create more engaging experiences.
References & sources
  1. Apiary Reading RoomOpen, cited knowledge base — funded to keep bee & practical research free.
From the Apiary Reading Room. Opinion & editorial — not financial advice. We don't overclaim.
More from the Reading Room