Methods
loadPage#
Navigate and transition to a URL, optionally modifying the request method and sending query or form data. Setting a customTransition
works like setting the data-swup-transition
attribute on a link.
swup.loadPage({
url: '/about', // URL of request (defaults to current url)
method: 'GET', // method of request (defaults to "GET")
data: data, // data passed into XMLHttpRequest.send()
customTransition: '' // name of transition to use
});
on/off#
Un/register a handler for swup events.
const handler = (event) => console.log(event);
// register event handler
swup.on('clickLink', handler);
// unregister event handler
swup.off('clickLink', handler);
// unregister all handlers for given event
swup.off('clickLink');
// unregister all handlers for all events
swup.off();
destroy#
Disables swup.
swup.destroy();
use/unuse#
Enable and disable plugins.
// Enable plugin: accepts an instantiated instance
swup.use(new SwupScrollPlugin());
// Disable plugin: accepts either name or instance
swup.unuse('ScrollPlugin');
findPlugin#
Returns the plugin instance by that name, if enabled.
const pluginInstance = swup.findPlugin('ScrollPlugin');
getAnimationPromises#
Get an array of Promises that resolve when all animations have finished on the elements that swup identified as animation containers.
This method can be overwritten to return a custom array of Promises that swup should wait for before proceeding with the page transition.
await Promise.all(swup.getAnimationPromises());
// Animations have finished now
getPageData#
Note: This method is rather internal and is utilized by custom payload plugin. Use the plugin instead.
Given an XHR request object, returns an object for further use in swup. Expects HTML as return type. Can be overwritten to accept and parse other return types from server, but must always return at least the fields below.
const json = {
title: 'Page title',
originalContent: '<html>...</html>',
blocks: ['<div id="swup"></div>'],
pageClass: 'body-class',
responseURL: '/redirected-url'
};
triggerEvent#
Trigger a swup event. Pass the event name and an optional event object of the original event that triggered it.
swup.triggerEvent('transitionEnd', popstateEvent);
log#
Does nothing by default, but outputs the passed content when the debug plugin is used. Accepts two arguments, the content of message and an optional log object which gets printed in a console group.
swup.log('Something happened', { lorem: 'ipsum' });
Methods added by plugins#
These methods are not present on swup by default, but will require installing the mentioned plugins to become available.
preloadPage#
Added by the preload plugin. Preload a page and save it into the cache.
swup.preloadPage('/page-url');
preloadPages#
Added by the preload plugin.
Finds all links on the page with a data-swup-preload
attribute and preloads the URLs they point to.
swup.preloadPages();
scrollTo#
Added by the scroll plugin. Smoothly scroll to the requested position. Accepts either the amount in pixels or the element you want to scroll to. Currently only supports vertical scrolling.
// scroll vertically to 2000px
swup.scrollTo(2000);
// scroll vertically to an element
swup.scrollTo(document.querySelector('#footer'));