在我的页面中,我有两个具有相同项目的 Material Design Component 抽屉。一种是永久用于桌面/平板电脑显示,另一种是隐藏/模态用于移动显示。
<aside class="mdc-drawer mdc-drawer--permanent">
<div class="mdc-drawer__header">
<h3 class="mdc-drawer__title">App</h3>
<h6 class="mdc-drawer__subtitle">@username</h6>
</div>
<div class="mdc-drawer__content">
<nav class="mdc-list--permanent">@menu_drawer_content</nav>
</div>
</aside>
<aside class="mdc-drawer mdc-drawer--modal">
<div class="mdc-drawer__header">
<h3 class="mdc-drawer__title">App</h3>
<h6 class="mdc-drawer__subtitle">@username</h6>
</div>
<div class="mdc-drawer__content">
<nav class="mdc-list">@menu_drawer_content</nav>
</div>
</aside>
两者都被初始化:
modalDrawer = mdc.drawer.MDCDrawer.attachTo(document.querySelector('.mdc-drawer--modal'));
let list = mdc.list.MDCList.attachTo(document.querySelector('.mdc-list--permanent'));
list.wrapFocus = true;
我有一个切换另一个的javascript:
let smallForm = window.matchMedia("(max-width: 767px)").matches;
function resized() {
let smallForm_ = window.matchMedia("(max-width: 767px)").matches;
if (smallForm !== smallForm_) {
smallForm = smallForm_;
changedMedia();
}
}
function changedMedia() {
let drawerButton = $('.mdc-top-app-bar__row > section > button');
if (smallForm) {
$('.mdc-drawer--permanent').hide();
drawerButton.show();
} else {
$('.mdc-drawer--permanent').show();
drawerButton.hide();
modalDrawer.open = false;
}
}
仍然存在的一个错误是,在一个抽屉上选择一个项目不会在另一个抽屉上选择相同的项目。如果我从一种尺寸转换到另一种尺寸,则所选项目将与内容不匹配。
我可以链接两个抽屉,以便在一个抽屉上的选择会改变另一个抽屉的状态(尤其是在不触发“另一个”抽屉上的事件或进入递归循环交叉通知循环的情况下)?
编辑:增加赏金。完整源码。