In this article, we will learn how to show a tooltip when text is ellipsis.
The following example demonstrates how to show a Tooltip when text is overflow with an ellipsis.
First, we need to add a directive using the following command:
ng generate directive Ellipsis
Open the ellipsis.directive.ts file and add the code to it.
import { AfterViewInit, Directive, ElementRef } from "@angular/core"; @Directive({ selector: "[isEllipsis]" }) export class EllipsisDirective implements AfterViewInit { constructor(private elementRef: ElementRef) { } ngAfterViewInit(): void { setTimeout(() => { const element = this.elementRef.nativeElement; if (element.offsetWidth < element.scrollWidth) { element.title = element.innerHTML; } }, 1000); } }
Open the ellipsis.directive.ts file and add the code to it.
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { EllipsisDirective } from './elipsis.Directive'; @NgModule({ declarations: [ AppComponent, EllipsisDirective ], imports: [ BrowserModule, AppRoutingModule ], providers: [], exports: [EllipsisDirective], bootstrap: [AppComponent] }) export class AppModule { }
Open the ellipsis.directive.ts file and add the code to it.
<div isEllipsis class="ellipsis"> how to activate tooltip when text are ellipsis using a directive in angular. </div>
Open the app.component.scss file and add the code to it.
.ellipsis{ width: 100px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
Output:
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
View Comments
Hi, how about when you try to activate the tooltip for ellipsis in table?
What you gonna do when your element will be inline like or , in this case your scrollWidth will be always 0, besides you'll never see ellipsis on inline elements without another css property as { display: block }, scrollWidth would equals to 0, kinda fragile solution...
i meant span or italic tags above