将鼠标悬停在工具提示区域上的工具提示指令

Posted

技术标签:

【中文标题】将鼠标悬停在工具提示区域上的工具提示指令【英文标题】:Tooltip Directive with mouse over on tooltip area 【发布时间】:2018-12-08 05:58:14 【问题描述】:

我的要求是当用户将鼠标悬停在图标上时,应该出现工具提示,并且用户可以点击工具提示中的 URL。图标 div 内的工具提示元素也应在鼠标悬停时附加到正文并在鼠标移出时删除。因为工具提示大小很大并且父元素具有溢出自动。因此需要显示正文的附加工具提示元素。

在下面的代码中,我可以将工具提示数据附加到正文,但它正在删除图标内的元素。所以第二次它没有获取工具提示数据并给出错误。

<div class="overflowAuto">
    <div class="icon" appClickableTooltip>
        <div>Tooltip html Elements and data here...</div>
    </div>
</div>

@Directive(
  selector: '[appClickableTooltip]'
)
export class ClickableTooltipDirective 
  constructor(private el: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document: Document)  
  mouseover: boolean;

  div = this.renderer.createElement('div');

  @HostListener('mouseover')
  onMouseOver() 
    console.log('true');
    let thisEl = this.el.nativeElement.children[0];
    this.renderer.appendChild(document.body, thisEl);
  

【问题讨论】:

【参考方案1】:

你不需要@hostlistener

试试这个:

<div (mouseenter) ="mouseEnter('div a') "  (mouseleave) ="mouseLeave('div A')">
  <h2>Div A</h2>
</div> 
<div (mouseenter) ="mouseEnter('div b')"  (mouseleave) ="mouseLeave('div B')">
  <h2>Div B</h2>
</div>

也看到这个 Angular 2 Hover event

【讨论】:

以上是关于将鼠标悬停在工具提示区域上的工具提示指令的主要内容,如果未能解决你的问题,请参考以下文章

将鼠标悬停在闪亮的 ggplot 上时的工具提示

将鼠标悬停在标题列数据表上时显示工具提示

当鼠标悬停在 MFC C++ 中列表控件的列标题上时显示工具提示

鼠标悬停效果工具提示

在多个滑块元素上捕获鼠标悬停

鼠标悬停时的 SVG 地图工具提示,可单击