javascript 当点击一个被切换的元素时侧边栏不打开

kd3sttzy  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(79)

我目前正在做一个项目,用户希望能够在header上的汉堡包按钮不可见时打开侧边栏。为了完成这个任务,我做了一个按钮,只有当header不在视图中时才显示。问题是,showSidebar功能没有被执行。我还试图将showSidebar的功能直接作为匿名函数导入到addEventListener中,结果相同。
每当我点击任何不在边栏或汉堡按钮本身的东西时,边栏就会关闭。

function showSidebar() {
    sidebar.classList.add('show');
    overlay.classList.add('enabled');
}

function togglePill() {
    const scrolled = window.scrollY;
    if (scrolled <= 69) {
        locationPill.classList.remove('show');
    } else if (scrolled > 69) {
        locationPill.classList.add('show');

        locationPill.addEventListener('click', showSidebar);
    }
}
window.addEventListener('scroll', togglePill);

字符串

5gfr0r5j

5gfr0r5j1#

确保当你点击位置药丸时隐藏侧边栏功能没有被切换

document.addEventListener('click',
  e => !sidebar.contains(e.target)
       && e.target.parentElement !== hamburgerBtn
       && !e.target.classList.contains('location')
       && !e.target.parentElement.classList.contains('location') ?
            hideSidebar() : false
);

字符串

相关问题