Реализация намерения наведения в angular 2+

Мне сложно найти что-либо для реализации намерения наведения в angular 2. Открыт для любых предложений.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
325
2

Ответы 2

Для реализации наведения в angular необходимо использовать события mouseenter и mouseleave над элементами.

Следующий пример поможет вам:

HTML

<p (mouseenter) = "onMouseEnter($event)" (mouseleave) = "onMouseLeave($event)">Some value</p>

Код

public onMouseEnter($event): void {
   //your code when the mouse cursor enters the element
}

public onMouseLeave($event): void {
   //your code when the mouse cursor leaves the element
}

Вы можете реализовать это, например, используя плагин hoverintent

Вы можете создать свою собственную директиву атрибутов angular и подключить плагин к элементу, для которого эта директива используется, внутри метода ngOnInit этой директивы, например, следующим образом:

public ngOnInit()
{
    this.HoverListener = hoverintent(this.Element.nativeElement,
        () =>
        {
            // Handler in - do any action here, like opening a menu for example
        },
        () =>
        {
            // Handler out - do any action here, like closing a menu for example
        } 
    );
}

вам нужно получить ссылку на элемент, введенную в конструктор обычным способом:

constructor(protected Element: ElementRef)
{
}

также не забудьте вызвать метод remove() в методе директивы ngOnDestroy, чтобы предотвратить любые утечки памяти:

public ngOnDestroy()
{         
    this.HoverListener.remove();     
}

В проекте, в котором я использовал этот подключаемый модуль, я решил загрузить исходный файл javascript подключаемого модуля как часть страницы и не пытался включить его в набор накопительных пакетов, который я использую для объединения скомпилированного приложения AOT.

Другие вопросы по теме