【问题标题】:Opening Kendo UI for Angular menu upwards instead of downwards向上而不是向下打开 Angular 菜单的 Kendo UI
【发布时间】:2020-08-12 01:05:08
【问题描述】:

In this StackBlitz 我有一个用于 Angular 上下文菜单的 Kendo UI。当用户右键单击菜单列表时,菜单列表会像任何常规菜单一样向下打开。

我需要的是向上而不是向下打开菜单列表。这就是我想要实现的,强制菜单总是向上:

这可能吗?我在API 中找不到任何选项。

【问题讨论】:

    标签: angular kendo-ui kendo-ui-angular2


    【解决方案1】:

    您可以控制自己并指定打开上下文菜单的位置。

    首先,从上下文菜单项中移除目标属性,改为在目标上监听contextmenu 事件。

    其次,当触发 contextmenu 事件的事件处理程序时,调用 API 中的show 方法并分配您要使用的正确偏移量。根据菜单的预期高度计算这个位置很可能是最棘手的部分。

    最后,阻止浏览器的默认上下文菜单。

    onRightMouseClick(event: MouseEvent) {
      const posX = this.contextMenuTarget.nativeElement.getBoundingClientRect().left;
      const posY = this.contextMenuTarget.nativeElement.getBoundingClientRect().top - 85;
      this.contextMenu.show({
        left: posX,
        top: posY
      });
    
      event.preventDefault();
    }
    <div #target class="target" (contextmenu)="onRightMouseClick($event)">
      <p class="placeholder">Right-click to open Context menu</p>
    </div>
    <kendo-contextmenu [items]="items" clss="menu"> </kendo-contextmenu>

    看看演示here

    【讨论】:

    • 它可以工作,但是幻灯片效果是向下而不是向上,这看起来很尴尬。我尝试使用&lt;kendo-contextmenu [animate]="false" ... 禁用效果(我不需要它)但它不起作用,有什么想法如何禁用效果?
    • 上下文菜单上有动画输入,我相信你可以用它禁用动画。
    • 这就是我用[animate=false] 尝试过的,见here 它不起作用
    • 使用 animate=false 或 [animate]="'false'"
    • 不行,不好意思,看我之前评论里的StackBlitz
    猜你喜欢
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    相关资源
    最近更新 更多