angular - 如何使 MatTooltip 在焦点上而不是悬停时可见?

标签 angular angular-material tooltip

有没有办法可以将工具提示设置为在焦点上而不是悬停时可见?

我试图从 Angular 官方文档中理解并搜索类似的问题,包括这个 Always Show Tooltip ( Angular Material2) ,但到目前为止我还没有看到任何有用的东西。

我的代码是:

<input
  matTooltipPosition="above"
  matTooltipClass="my-tooltip"
  matTooltip='Fill in the field and then click "Enter"'
  (focus)="tooltip.show()"
  #tooltip="matTooltip">

我也尝试过 TooltipVisibility = "Visible" 但没有成功

最佳答案

如果触发焦点事件,工具提示将消失。

您可能有两种解决方法:

a.将工具提示放在隐藏元素(即 div)上,并使其显示在输入焦点上。但输入不应该有任何工具提示:

HTML:

<input (focus)="tooltip.show()">
<div class="hiddenTooltip"
     matTooltipPosition="below"
     matTooltipClass="my-tooltip"
     matTooltip='Fill in the field and then click "Enter"'
     #tooltip="matTooltip">
</div>

CSS:

.hiddenTooltip {
  position: absolute;
  visibility: hidden;
  left: 0;
  width: 0;
  top: 3em
}
<小时/>

b.制作一个用 ngIf 显示/隐藏的假工具提示:

HTML

<input (focus)="show=true" (blur)="show=false">
<div #tooltip *ngIf="show" class="fakeTooltip">
  Fill in the field and then click "Enter"
</div>

CSS:

.fakeTooltip {
  background: rgb(65, 64, 64);
  border-radius: 0.25em;
  padding: 0.75em;
  display: block;
  z-index: 2;
  color: white;
  height: fit-content;
  width: fit-content;
}

Demo

关于angular - 如何使 MatTooltip 在焦点上而不是悬停时可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54169184/

相关文章:

angular - mat-list-item 不计算子组件中的 "mat-line"类

javascript - Nativescript 真实设备日期和时间

css - 如何删除 Angular Material 模态内按钮的自动对焦?

angular - 当 FormControlName 是动态且可以更改时如何初始化 FormGroup?

javascript - float 在屏幕上的链接上的 qtip2 工具提示

javascript - jQuery 悬停在堆叠元素上(带有 'tipsy' )

jsf - p :selectManyCheckbox or other p:selectMany*/One* 的 Primefaces 工具提示

c# - 如何在没有 Build "Errors"的情况下将 Angular-CLI 与 Visual Studio 2017 一起使用

javascript - 模糊事件未在 IE 中触发 - Angular 2+

Angular MatPaginator 和 Azure 表存储