пока предварительный ответ работает нормально, но если вы хотите использовать тот же эффект на другом элементе, не находящемся внутри этого компонента, директива angular является идеальным вариантом использования здесь.
BgTiltDirective
@Directive({
selector: "[bgTilt]"
})
export class BgTiltDirective {
@HostListener("mousemove", ["$event", "$event.target"]) handler(
e: MouseEvent,
elm: HTMLElement
) {
const x = -e.clientX / 5;
const y = -e.clientY / 5;
elm.style.backgroundPositionX = x + "px";
elm.style.backgroundPositionY = y + "px";
}
}
шаблон
<div class="container" bgTilt></div>
демо ?♂️