我有一个功能,当单击菜单项时,它应该导致窗口滚动 400px;
当我单击菜单项时,该函数的内部部分正在触发,因为我收到了 console.log 消息,但窗口没有滚动。我似乎无法弄清楚问题出在哪里。
任何帮助都会很棒。
代码笔:https://codepen.io/emilychews/pen/LQVQrq
JS
var aboutLink = document.querySelector(".menu-item-1 a")
var menuClicked = false;
function aboutClicked () {
if (menuClicked === false) {
window.scroll(0, 400);
menuClicked = true;
console.log("clicked")
}
}
aboutLink.addEventListener("click", aboutClicked);
HTML
<div class="menu-item-1">
<a href="#">About</a>
</div>
最佳答案
请在监听器调用中阻止默认事件。下面是代码。
<script type="text/javascript">
$(document).ready(function () {
var aboutLink = document.querySelector(".menu-item-1 a");
aboutLink.addEventListener("click", aboutClicked);
var menuClicked = false;
function aboutClicked(event) {
event.preventDefault();
if (menuClicked === false) {
window.scroll(0, 500);
menuClicked = true;
console.log("clicked");
}
}
});
</script>
关于javascript - window.scroll() 函数未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48548415/