Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

293
Views
¿Cómo puedo asignar el tamaño y la posición de los elementos al tamaño y la posición de otros elementos al cambiar el tamaño?

Así que me encontré con un problema al tratar de hacer clic en los objetos de una imagen. Tengo una imagen con 3 objetos que quiero vincular a 3 páginas diferentes/ejecutar 3 funciones diferentes al hacer clic.

Ahora mi problema ocurre cuando cambio el tamaño de mi ventana. La imagen tiene el siguiente estilo para mostrar siempre los objetos, incluso si cambio el tamaño de la ventana y lleno toda la pantalla.

 img { object-fit: cover; object-position: center; width: 100%; height: calc(100vh - 90px); }

Dado que los objetos son bastante grandes y cuando cambio el tamaño, digamos en la vista móvil, los enlaces se superpondrán y serán más grandes que la pantalla misma.

Esta es la estructura HTML actual, que puedo cambiar.

 <div> <img src="img/steintafelAussen.jpg" alt="Kircheneingang" /> <div class="buttons"> <button class="btn-1"></button> <button class="btn-2"></button> <button class="btn-3"></button> </div> </div>

Ahora mi pregunta es, ¿sería posible asignar los tamaños y las posiciones de los botones a la imagen, que se reescalen automáticamente, o necesitaría usar consultas de medios para lograrlo?

Estaba pensando en rastrear la escala inicial de la imagen de alguien y aplicarla a los enlaces con transform: scale(); , ¿quizás?

¿Puedo usar un SVG transparente que se coloca sobre la imagen, tiene 3 objetos con eventListeners en lugar de enlaces?

Usar JS está bien, ya que es una aplicación vue 3.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

He resuelto el problema colocando un SVG del mismo tamaño sobre la imagen y agregando eventListeners a las rutas de los enlaces. Conduciendo al siguiente código:

 .wrapper { aspect-ratio: 4 / 3; position: absolute; max-height: calc(100vh - 90px); /*Calc because my header and footer are 40px and 50px otherwise it would be 100vh*/ margin: auto; width: auto; top: 40px; /*header is 40px*/ right: 0; bottom: 50px; /*footer is 50px*/ left: 0; } .img, .overlay-svg { position: absolute; max-height: 100%; margin: auto; width: auto; top: 0; right: 0; bottom: 0; left: 0; } <div class="wrapper"> <img class="img" src="/path/to/image" /> <svg class="overlay-svg" viewBox="0 0 2049 1537" xmlns="http://www.w3.org/2000/svg" > <path class="btn-svg" d="M810 523V495.5L890 479.5H993.5L1090 495.5L1178 523V1311L787 1329.5L799.5 940.5L810 523Z" /> <path class="btn-svg" d="M1461 672L1808 585L1832 1537H1471.5L1461 672Z" /> <path class="btn-svg btn-lamp" d="M481 567L517 512L544 567L577 589.5L544 699L506.5 739.5L466 690L451 579L481 567Z" /> </svg> </div>
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!