window.scroll()函数没有触发

时间:2018-01-31 17:47:39

标签: javascript html events javascript-events window

我有一个函数,当单击一个菜单项时,它应该导致窗口滚动400px;

当我单击菜单项时,函数的内部部分正在触发,因为我收到了console.log消息,但是窗口没有滚动。我似乎无法解决问题所在。

任何帮助都会很棒。

Codepen: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>

1 个答案:

答案 0 :(得分:1)

请在侦听器调用中阻止默认事件。以下是代码。

<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>