Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

233
Vistas
Angular 2: obtener la altura emergente de DOM

Tengo una "ventana emergente" que muestra datos recuperados de una base de datos en mousemove y aparece en la ubicación del mouse. Se parece a esto:

 <div (mousemove)="onMouseMove($event)></div> onMouseMove(event: MouseEvent) { this.xCoord = event.x this.yCoord = event.y } <div [style.left.px]="xCoord" [style.top.px]="yCoord" class="popup"> ... </div>

Debido a que las dimensiones de la ventana emergente son dinámicas, según su contenido, necesito recuperar las dimensiones para que la ventana emergente se coloque correctamente (sobre el objetivo y centrada horizontalmente). ¿Es posible en Angular 2 obtener propiedades de estilo de un elemento sin, por ejemplo, un evento de mouse? Idealmente, las dimensiones se asignan a una variable cuando aparece la ventana emergente.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿Por qué no usa Javascript básico para acceder a las propiedades de ancho y alto del elemento DOM, así:

JavaScript:

 getPopupDimentions() { let myElement = getElementById("myPopup"); return { width: myElement.style.width, height: myElement.style.height } }

HTML:

 <div [style.left.px]="xCoord" [style.top.px]="yCoord" class="popup" id="myPopup"> ... </div>

Por supuesto, el Javascript que publiqué anteriormente deberá llamarse una vez que se haya iniciado la ventana emergente.


Si quisiera un enfoque más angular , le recomendaría usar View Child, así:

JavaScript:

Asegúrese de importar ViewChild import { Component, ViewChild } from '@angular/core'

 @ViewChild('mypopup') mypopup; getPopupDimentions() { return { width: this.mypopup.nativeElement.style.width, height: this.mypopup.nativeElement.style.height } }

HTML:

 <div [style.left.px]="xCoord" [style.top.px]="yCoord" class="popup" #mypopup> ... </div>

Si desea obtener más información sobre los niños de la vista Angular, le recomiendo consultar esta pregunta y sus respuestas .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda