问题的标题说明了一切,swupjs 文档说您可以使用以下对象定位链接:
const options = {
linkSelector:
'a[href^="' +
window.location.origin +
'"]:not([data-no-swup]), a[href^="/"]:not([data-no-swup]), a[href^="#"]:not([data-no-swup])'
};
这里的问题是我只想定位导航中的链接,而不是所有页面上的所有链接。我尝试过这样的事情,获取所有 href 属性,例如:
const navLinks = document.querySelectorAll(".site-header__link");
let linkAttributes = "";
navLinks.forEach((link)=>{
linkAttributes += `${link.getAttribute("href")}, `;
})
const options = {
containers: ["#swup"],
linkSelector:`a[href^="${linkAttributes}"]:not([data-no-swup]), a[href^="/"]:not([data-no-swup]), a[href^="#"]:not([data-no-swup])`,
plugins: [
new SwupOverlayTheme({
color: "linear-gradient(270deg,#001d31 19.98%,#004777 55.99%)",
}),
],
};
我也尝试将 href-s 作为数组,并为不同的链接创建完整的行:
linkAttributes += `a[href^="${link.getAttribute("href")}"]:not([data-no-swup]), `;
如果更容易获得解决方案,这是链接示例:
main-link/targeted-link/(don't do any transitions anymore)