Javascript 有没有办法确定抽屉面板是打开的还是关闭的?

Javascript 有没有办法确定抽屉面板是打开的还是关闭的?,javascript,polymer,Javascript,Polymer,或者更确切地说,是聚合物来源中已经定义的本地方法?我确信我可以编写一个函数来处理逻辑,但是我已经做了一些挖掘,还没有找到任何关于已经实现的确定这个逻辑的方法。我只是想知道我是否需要自己写点东西 编辑:刚刚意识到,即使我确实通过toggleDrawer()编写了跟踪抽屉打开/关闭时间的标记函数,当抽屉被打开或关闭时,它也会被抛出,所以我确实希望有一个本机方法来实现这一点 编辑:使用@Justin XL链接我的页面中的信息,我做了一些测试,发现通过滑动或按抽屉按钮关闭抽屉的一般打开触发了2个核心选定

或者更确切地说,是聚合物来源中已经定义的本地方法?我确信我可以编写一个函数来处理逻辑,但是我已经做了一些挖掘,还没有找到任何关于已经实现的确定这个逻辑的方法。我只是想知道我是否需要自己写点东西

编辑:刚刚意识到,即使我确实通过
toggleDrawer()
编写了跟踪抽屉打开/关闭时间的标记函数,当抽屉被打开或关闭时,它也会被抛出,所以我确实希望有一个本机方法来实现这一点

编辑:使用@Justin XL链接我的页面中的信息,我做了一些测试,发现通过滑动或按抽屉按钮关闭抽屉的一般打开触发了2个核心选定事件,但通过单击抽屉项目关闭触发了4个。我已经设法拼凑出一个解决方案,可以根据2个变量在任何时候确定抽屉是打开还是关闭的

drawerOpenIgnoreClose = false;
drawerOpen = false;
drawerEvent = 0;
drawer.addEventListener('core-select', function() {
    drawerEvent++;
    //console.log('drawerpanel event fired ' + drawerEvent);
    if (drawerEvent >= 2) {
        if (drawerOpenIgnoreClose) {
            drawerOpenIgnoreClose = false;
            console.log('drawer is closed, not from click of menu item');
        } else {
            drawerOpenIgnoreClose = true;
            console.log('drawer is open');
        }
        drawerEvent = 0;
    }
});
每次调用
drawerPanel.closerDrawer()
,即每次单击菜单项时,都将
drawerpen
设置为false。然后我可以确定抽屉是否打开

function checkDrawer() {
    if (drawerOpen && drawerOpenIgnoreClose) {
        console.log('drawer is definitely open');
        return true;
    } else if (!drawerOpen || !drawerOpenIgnoreClose) {
        console.log('drawer is definitely closed');
        return false;
    }
}
抽屉外的按钮和抽屉内的按钮运行
checkDrawer()
(两个按钮分别返回open/closed),但我会做更多的测试。我甚至不知道这是否是最简单的,甚至是正确的处理方法,但它似乎有效,我很高兴


再次编辑:设法找到问题,如果抽屉面板被打开,
checkDrawer()
将返回关闭状态。我相信更多的逻辑会解决这个问题。我要做些调整。

我想你指的是
核心抽屉面板

有一个
shown
属性,告诉您面板是否处于狭窄布局中

或者,您可以订阅
core responsive change
事件,并使用
detail.show
来确定


您可以从中阅读更多内容。

利用提供的信息,我编写了一些代码,我认为这些代码提供了一个可行的解决方案,并将其添加到原始问题帖子中。到目前为止,我所有的测试都在进行中,所以感谢您的帮助!我希望我能对你的答案投赞成票,但我仍然缺乏代表性。一旦/如果我到了那里,我一定会回来投票:谢谢,很高兴它有帮助!看来,我很可能会关闭“刷卡”打开抽屉,并放弃这一点,因为每次刷卡都会破坏逻辑。这很令人沮丧。无论如何,这是一个很好的见解,所以再次感谢。现在我已经投了更高的票,因为我可以。