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

370
Vistas
¿Cómo puedo agregar más de una ventana emergente y cómo puedo cambiarla en css?

Tengo dos preguntas que no puedo resolver.

  1. Mi primera es, ¿cómo puedo cambiar el siguiente código, para poder agregar más de una ventana emergente en mi sitio web? en js es
 function myFunction() { var popup = document.getElementById("myPopup"); popup.classList.toggle("show"); }

y en html

 <p> Hello!<div class="popup" onclick="myFunction()"> <p>this is clickable </p> <span class="popuptext" id="myPopup">this is inside my popup</span> </div> </p>

Necesito cambiar la función para poder tener más que solo la ventana emergente anterior. ¿Cómo puedo hacer eso? Está claro que necesito otra ID que myPopup, pero ¿cómo puedo agregar más variables en el JS?

2) El siguiente es mi CSS, pero cuando está en HTML, el texto antes del DIV se muestra normalmente en mi sitio web, pero debido al DIV, el texto aparece una línea debajo del texto. ¿Necesito declarar algo en el div para que todo el texto aparezca en una línea?

 .popup { position: relative; display: inline-block; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .popuptext { visibility: hidden; width: 160px; color: #fff; text-align: center; border-radius: 6px; padding: 16px 0; position: absolute; z-index: 1; bottom: 125%; left: 50%; margin-left: -80px; } .popup .popuptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #D2B48C transparent transparent transparent; } .popup .show { visibility: visible; -webkit-animation: fadeIn 1s; animation: fadeIn 1s; } /* Add animation (fade in the popup) */ @-webkit-keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

¡Muchas gracias por cualquier tipo de ayuda!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

  1. No necesitas otra identificación. Con querySelectorAll() puede seleccionar todos los elementos con una ID dada.

  2. Use span en lugar de div . <p> también hará un salto de línea.

Mis ediciones en su código:

  • span en lugar de div y etiquetas izquierda <p>
  • agregó una nueva ventana emergente
  • atributos onclick eliminados (no es una buena práctica, use addEventListener en su lugar)
  • JavaScript completo
  • color: #000 a .popup .show en CSS

 const myElements = document.querySelectorAll(".popup") myElements.forEach(el => { el.addEventListener("click", () => { el.querySelector("#myPopup").classList.add("show"); }) })
 .popup { position: relative; display: inline-block; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .popuptext { visibility: hidden; width: 160px; color: #fff; text-align: center; border-radius: 6px; padding: 16px 0; position: absolute; z-index: 1; bottom: 125%; left: 50%; margin-left: -80px; } .popup .popuptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #D2B48C transparent transparent transparent; } .popup .show { visibility: visible; -webkit-animation: fadeIn 1s; animation: fadeIn 1s; color: #000; } /* Add animation (fade in the popup) */ @-webkit-keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
 <br><br><p> Hello! <span class="popup"> this is clickable <span class="popuptext" id="myPopup"> this is inside my popup </span> </span> <span class="popup"> this is clickable <span class="popuptext" id="myPopup"> this is inside my popup </span> </span> </p>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Finalmente pude resolver tu problema. Esta captura de pantalla puede actuar como una respuesta a sus dos preguntas.

ingrese la descripción de la imagen aquí

Realmente no sé cómo quieres que sea el diseño emergente. En todos los casos, este es un código válido, es decir, cuando hace clic en "esto se puede hacer clic", ambas ventanas emergentes aparecerán al mismo tiempo.

Código para copiar y pegar:

 function myFunction() { var popups = document.getElementsByClassName("popuptext"); for (var i = 0; i < popups.length; i++) popups[i].classList.toggle("show"); }
 .popup { position: relative; display: inline-block; cursor: pointer; } .popuptext { opacity: 0; width: 160px; color: black; border-radius: 6px; padding: 16px 0; z-index: 1; } .popup .popuptext::before { content: ""; border-width: 10px; border-style: solid; border-color: #d2b48c transparent transparent transparent; } .show { opacity: 1; transition: opacity 1s; }
 <p> Hello! <div class="popup" onclick="myFunction()"> <p>this is clickable </p> <p class="popuptext"> this is inside my 1st popup </p> <p class="popuptext"> this is inside my 2nd popup </p> </div> </p>

Para más ayuda, estoy disponible.

about 4 years ago · Juan Pablo Isaza 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