【发布时间】:2016-12-13 07:16:59
【问题描述】:
我想做什么:
在页面 A 上,有许多页面的链接,例如B页、C页等
当我点击一个链接时,我希望当前页面淡出,新页面淡入。
我搜索了很多,得到了很多 jquery 解决方案 - 它们工作正常,但我想知道如何仅在原版 javascript 中做到这一点。我试图自己解决它,但它不起作用。我已经检查了控制台错误并将 JS 脚本放在页脚中。
document.addEventListener("click", "a", function () {
// get the href attribute
var newUrl = this.attr("href");
// veryfy if the new url exists or is a hash
if (!newUrl || newUrl[0] === "#") {
// set that hash
location.hash = newUrl;
return;
}
// now, fadeout the html (whole page)
document.querySelector("html").fadeOut(function () {
// when the animation is complete, set the new location
location = newUrl;
});
// prevent the default browser behavior.
return false;
});}
【问题讨论】:
-
什么“不起作用”?
-
addEventListener - 第二个参数“a”?这不是 jquery :)
-
@qxz - 我不太清楚为什么页面没有在点击时淡出以及为什么下一页没有淡入
-
@pawel - 哦,你是对的!错过了那个。
-
.fadeOut是一个 jQuery 函数,在普通的HTMLElement上不起作用。有关潜在的解决方案,请参阅this question。.attr相同:使用getAttribute(developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute)。如果您查看控制台错误,您应该会发现这些不是功能......
标签: javascript