NavigateEvent:hasUAVisualTransition 属性
NavigateEvent
接口的只读属性 hasUAVisualTransition
返回一个布尔值,如果用户代理在此事件分发之前为此导航执行了视觉过渡,则返回 true
,否则返回 false
。
用户代理可以在执行站点导航时提供内置的视觉过渡。如果站点作者也添加了视觉过渡,用户代理和作者的过渡可能会发生冲突,令访问者感到困惑。此属性允许您检测是否提供了用户代理过渡,以便您可以跳过作者过渡,从而获得更好的用户体验。
值
一个布尔值。
示例
js
navigation.addEventListener("navigate", (event) => {
// Some navigations, e.g. cross-origin navigations, we
// cannot intercept. Let the browser handle those normally.
if (!event.canIntercept) {
return;
}
// Don't intercept fragment navigations or downloads.
if (event.hashChange || event.downloadRequest !== null) {
return;
}
event.intercept({
handler() {
// Fetch the new content
const newContent = await fetchNewContent(event.destination.url, {
signal: event.signal,
});
// The UA does not support View Transitions, or the UA
// already provided a Visual Transition by itself (e.g. swipe back).
// In either case, update the DOM directly
if (!document.startViewTransition || event.hasUAVisualTransition) {
doSinglePageAppNav(newContent);
return;
}
// Update the content using a View Transition
document.startViewTransition(() => {
doSinglePageAppNav(newContent);
});
},
});
});
规范
规范 |
---|
HTML # dom-navigateevent-hasuavisualtransition |
浏览器兼容性
加载中…