我正在使用Angular Material" md-menu"正如这些演示中所述:https://material.angularjs.org/latest/demo/menu
我想要做的是将菜单的底部选项始终保持在您单击的按钮上方,以显示菜单,无论我设置了多少条目。我测量了每个额外条目在菜单底部添加了50px的差异。
有没有办法根据菜单中的条目数确定偏移量并将其设置为偏移量?
所以,让我们说1个条目是" 0,-50",2个条目是" 0,-100"等等。
此值只需要通过某种方法确定,并且在加载页面后不会动态更改。
答案 0 :(得分:2)
这可能不是您正在寻找的答案,但根据您需要此功能的时间,您可以等待mdPanel
功能。它在过去的几天里被合并为主人,所以它不应该那么久。
mdPanel
的好处在于您可以根据需要轻松定位。您可以在此处查看基础知识:expressjs
我还没有检查mdMenu
是否已在mdPanel
上重新定位(可能还不是尚未),但您仍可以使用mdPanel创建菜单。这是一个基本的例子:
vm.menu = function () {
var position = $mdPanel.newPanelPosition()
.relativeTo(document.querySelector('#menu'))
.addPanelPosition($mdPanel.xPosition.ALIGN_START, $mdPanel.yPosition.ALIGN_BOTTOMS);
var config = {
templateUrl: 'widgets/menu.html',
hasBackdrop: false,
position: position,
clickOutsideToClose: true,
escapeToClose: true,
focusOnOpen: true,
controller: MenuController,
controllerAs: 'vm'
};
$mdPanel.open(config);
}
你可以在一个简单的mdButton
元素或任何你想要的东西上调用这个函数。