LayoutShift: hadRecentInput property
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The hadRecentInput read-only property of the LayoutShift interface returns true if lastInputTime is less than 500 milliseconds in the past.
Layout shifts are only a problem if the user is not expecting them, so layout shifts that are the result of user interactions (such as a user expanding a UI element) are often not considered in layout shift metrics. The hadRecentInput property allows you to exclude these shifts.
Value
A boolean returning true if lastInputTime is less than 500 milliseconds in the past; false otherwise.
Examples
>Ignoring recent user input for layout shift scores
The following example shows how the hadRecentInput property is used to only count layout shifts without recent user input.
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
// Count layout shifts without recent user input only
if (!entry.hadRecentInput) {
console.log("LayoutShift value:", entry.value);
if (entry.sources) {
for (const { node, currentRect, previousRect } of entry.sources)
console.log("LayoutShift source:", node, {
currentRect,
previousRect,
});
}
}
}
});
observer.observe({ type: "layout-shift", buffered: true });
Specifications
| Specification |
|---|
| Layout Instability API> # dom-layoutshift-hadrecentinput> |
Browser compatibility
Loading…