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

229
Vistas
Haz que una imagen salga volando de la pantalla

¿Cómo lo configuro para que la imagen del juego no se adjunte a las cortinas, el borde rojo?

Entonces, la imagen de reproducción puede salir volando de la pantalla, por lo que pasa más allá de su borde.

https://jsfiddle.net/v8j26qxw/

No debe permanecer dentro del borde rojo.

Cómo funciona es que cuando haces clic en la imagen de reproducción, se divide por la mitad.

¿Cómo lo configuro para que cuando la imagen de reproducción se separe, desaparezca de la pantalla?

Eso es lo que estoy tratando de hacer.

La imagen de reproducción permanece dentro del borde rojo, quiero que salga y quede fuera de la pantalla.

El problema es que la imagen de reproducción permanece dentro del borde rojo, no quiero que lo haga.

No quiero que se oculte la imagen del juego.

No esta:No esta

Debería estar haciendo lo siguiente en su lugar.

Quiero que la imagen de reproducción sea completamente visible fuera del borde rojo.

Preferiblemente una forma que no use z-index .

Lo que estoy buscando: lo que estoy buscando

 const cover = document.querySelector(".split-wrap"); (function manageCurtain() { "use strict"; function hide(el) { el.classList.add("hide"); } function coverClickHandler(evt) { const cover = evt.currentTarget; hide(cover); const curtain = document.querySelector(".curtain"); curtain.classList.add("slide"); } const cover = document.querySelectorAll('.jacketa'); cover.forEach(function(el) { el.addEventListener('click', coverClickHandler) }); }()); const videoPlayer = (function makeVideoPlayer() { "use strict"; let player = null; const tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; const firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); function onPlayerReady(event) { player = event.target; player.setVolume(100); // percent } let hasShuffled = false; function onPlayerStateChange(event) { const player = event.target; const shufflePlaylist = true; if (!hasShuffled) { player.setShuffle(shufflePlaylist); player.playVideoAt(0); hasShuffled = true; } } function addPlayer(video) { const playlist = "M7lc1UVf-VE"; new YT.Player(video, { width: 640, height: 360, host: "https://www.youtube-nocookie.com", playerVars: { autoplay: 0, controls: 1, loop: 1, rel: 0, iv_load_policy: 3, cc_load_policy: 0, fs: 0, disablekb: 1, playlist }, events: { "onReady": onPlayerReady, "onStateChange": onPlayerStateChange } }); } return { addPlayer }; }()); function onYouTubeIframeAPIReady() { const wrapper = cover.parentElement ; const frameContainer = wrapper.querySelector(".video"); videoPlayer.addPlayer(frameContainer); } (function iife() { "use strict"; function show(el) { el.classList.remove("hide"); } function coverClickHandler(evt) { const wrapper = evt.currentTarget; show(wrapper); } cover.addEventListener("click", coverClickHandler); }());
 html, body { height: 100%; padding: 0; margin: 0; } body { background: url(https://picsum.photos/id/1015/1500/1500) no-repeat; background-attachment: fixed; background-size: cover; } .outer { display: table; height: 100%; margin: 0 auto; width: 100%; overflow: hidden; } .tcell { display: table-cell; vertical-align: middle; padding: 8px 8px; } .curtain-wrapper { min-width: 40%; max-width: 640px; margin: auto; } .curtain-ratio-keeper { position: relative; padding-top: 56.25%; /* overflow: hidden; */ } .curtain { position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; border: 3px solid red; box-sizing: border-box; border-radius: 25px; overflow: hidden; background: transparent; } .slide-wrap:before, .slide-wrap:after { content: ""; position: absolute; top: 0; width: 50%; height: 100%; transition: transform 5s linear; background: url(https://picsum.photos/id/1015/1500/1500) no-repeat; background-attachment: fixed; background-size: cover; } .slide-wrap:before { left: 0; } .slide-wrap:after { right: 0; } .slide .slide-wrap::before { transform: translateX(-100%); } .slide .slide-wrap::after { transform: translateX(100%); } .video-frame { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .jacketa { position: absolute; top: 40px; width: 180px; height: 180px; cursor: pointer; border-radius: 50%; background: #130e85; border: 3px solid #f91f6e; box-sizing: border-box; box-shadow: 0 0 20px 2px #f9066bf7; display: block !important; } .j1 .jacketa { left: 30px; } .j2 .jacketa { right: 30px; } .jacketa .coversvg { position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin: auto; cursor: pointer; } .jacketa .coversvg { width: 70px; height: 75.4px; fill: none; stroke-width: 4px; stroke-miterlimit: 10; } .jacketa .coversvg .back { stroke: #000; opacity: 0.15; } .jacketa .coversvg .front { stroke: #08f9ff; stroke-dasharray: 150; stroke-dashoffset: 1500; animation: draw 20s infinite linear, flicker-1 2s linear 2s infinite both; } @keyframes draw { 100% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; } } @keyframes flicker-1 { 0%, 100% { opacity: 1; } 41.99% { opacity: 1; } 42% { opacity: 0; } 43% { opacity: 0; } 43.01% { opacity: 1; } 47.99% { opacity: 1; } 48% { opacity: 0; } 49% { opacity: 0; } 49.01% { opacity: 1; } } .split-wrap { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 240px; height: 260px; margin: auto; border-radius: 50%; transition: 10s ease; } .j1 { position: absolute; left: 0; top: 0; width: 50%; height: 100%; overflow: hidden; transition: 10s ease; } .j2 { position: absolute; left: 50%; top: 0; width: 50%; height: 100%; overflow: hidden; transition: 10s ease; } .curtain.slide .j1 { left: -500%; } .curtain.slide .j2 { left: 500%; } .wrap iframe { position: absolute; top: -3px; left: -3px; width: calc(100% + 6px); height: calc(100% + 6px); } .wrap, .jacket { position: absolute; top: -3px; left: -3px; width: calc(100% + 6px); height: calc(100% + 6px); } .hide { display: none; }
 <div class="outer"> <div class="tcell"> <div class="curtain-wrapper"> <div class="curtain-ratio-keeper"> <div class="curtain"> <div class="video-wrapper"> <div class="video-ratio-keeper"> <div class="wrap"> <div class="video video-frame"></div> </div> </div> </div> <div class="slide-wrap"></div> <div class="split-wrap"> <div class="j1"> <div class="jacketa" title="[ Enjoy The Music ]"> <svg class="coversvg" width="70" height="75.4" viewBox="0 0 47.96 51.66"> <title>[ Enjoy The Music ]</title> <path class="back" d="M2,25.83V4.11A2.11,2.11,0,0,1,5.13,2.27L44.88,24.45a2.11,2.11,0,0,1,0,3.7L5.1,49.41A2.11,2.11,0,0,1,2,47.55V25.83" /> <path class="front" d="M2,25.83V4.11A2.11,2.11,0,0,1,5.13,2.27L44.88,24.45a2.11,2.11,0,0,1,0,3.7L5.1,49.41A2.11,2.11,0,0,1,2,47.55V25.83" /> </svg> </div> </div> <div class="j2"> <div class="jacketa" title="[ Enjoy The Music ]"> <svg class="coversvg" width="70" height="75.4" viewBox="0 0 47.96 51.66"> <title>[ Enjoy The Music ]</title> <path class="back" d="M2,25.83V4.11A2.11,2.11,0,0,1,5.13,2.27L44.88,24.45a2.11,2.11,0,0,1,0,3.7L5.1,49.41A2.11,2.11,0,0,1,2,47.55V25.83" /> <path class="front" d="M2,25.83V4.11A2.11,2.11,0,0,1,5.13,2.27L44.88,24.45a2.11,2.11,0,0,1,0,3.7L5.1,49.41A2.11,2.11,0,0,1,2,47.55V25.83" /> </svg> </div> </div> </div> </div> </div> </div> </div> </div>

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

0

Necesita subir su div class="split-wrap" , así. Porque en div class="curtain" es un padre y usas overflow: hidden . Todos los niños fuera del alcance se ocultarán. Después de eso, cuando lo coloca encima de div class="curtain" , puede agregar algo de animación dividida.

 const cover = document.querySelector(".split-wrap"); const button = document.querySelector('.split-wrap'); // this line (function manageCurtain() { "use strict"; function hide(el) { el.classList.add("hide"); } function coverClickHandler(evt) { const cover = evt.currentTarget; hide(cover); button.querySelector('.j1').classList.add('move-left'); // this line button.querySelector('.j2').classList.add('move-right'); // this line const curtain = document.querySelector(".curtain"); curtain.classList.add("slide"); } const cover = document.querySelectorAll('.jacketa'); cover.forEach(function(el) { el.addEventListener('click', coverClickHandler) }); }()); const videoPlayer = (function makeVideoPlayer() { "use strict"; let player = null; const tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; const firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); function onPlayerReady(event) { player = event.target; player.setVolume(100); // percent } let hasShuffled = false; function onPlayerStateChange(event) { const player = event.target; const shufflePlaylist = true; if (!hasShuffled) { player.setShuffle(shufflePlaylist); player.playVideoAt(0); hasShuffled = true; } } function addPlayer(video) { const playlist = "M7lc1UVf-VE"; new YT.Player(video, { width: 640, height: 360, host: "https://www.youtube-nocookie.com", playerVars: { autoplay: 0, controls: 1, loop: 1, rel: 0, iv_load_policy: 3, cc_load_policy: 0, fs: 0, disablekb: 1, playlist }, events: { "onReady": onPlayerReady, "onStateChange": onPlayerStateChange } }); } function play() { player.playVideo(); } return { addPlayer, play }; }()); function onYouTubeIframeAPIReady() { const wrapper = cover.parentElement ; const frameContainer = wrapper.querySelector(".video"); videoPlayer.addPlayer(frameContainer); } (function iife() { "use strict"; function show(el) { el.classList.remove("hide"); } function coverClickHandler(evt) { const wrapper = evt.currentTarget.parentElement; show(wrapper); videoPlayer.play(); } cover.addEventListener("click", coverClickHandler); }());
 html, body { height: 100%; padding: 0; margin: 0; } body { background: url(https://picsum.photos/id/1015/1500/1500) no-repeat; background-attachment: fixed; background-size: cover; } .outer { display: table; height: 100%; margin: 0 auto; width: 100%; } .tcell { display: table-cell; vertical-align: middle; padding: 8px 8px; } .curtain-wrapper { min-width: 40%; max-width: 640px; margin: auto; } .curtain-ratio-keeper { position: relative; padding-top: 56.25%; /* overflow: hidden; */ } .curtain { position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; border: 3px solid red; box-sizing: border-box; border-radius: 25px; overflow: hidden; background: transparent; } .slide-wrap:before, .slide-wrap:after { content: ""; position: absolute; top: 0; width: 50%; height: 100%; transition: transform 5s linear; background: url(https://picsum.photos/id/1015/1500/1500) no-repeat; background-attachment: fixed; background-size: cover; } .slide-wrap:before { left: 0; } .slide-wrap:after { right: 0; } .slide .slide-wrap::before { transform: translateX(-100%); } .slide .slide-wrap::after { transform: translateX(100%); } .video-frame { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .jacketa { position: absolute; top: 40px; width: 180px; height: 180px; cursor: pointer; border-radius: 50%; background: #130e85; border: 3px solid #f91f6e; box-sizing: border-box; box-shadow: 0 0 20px 2px #f9066bf7; display: block !important; } .j1 .jacketa { left: 30px; } .j2 .jacketa { right: 30px; } .jacketa .coversvg { position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin: auto; cursor: pointer; } .jacketa .coversvg { width: 70px; height: 75.4px; fill: none; stroke-width: 4px; stroke-miterlimit: 10; } .jacketa .coversvg .back { stroke: #000; opacity: 0.15; } .jacketa .coversvg .front { stroke: #08f9ff; stroke-dasharray: 150; stroke-dashoffset: 1500; animation: draw 20s infinite linear, flicker-1 2s linear 2s infinite both; } @keyframes draw { 100% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; } } @keyframes flicker-1 { 0%, 100% { opacity: 1; } 41.99% { opacity: 1; } 42% { opacity: 0; } 43% { opacity: 0; } 43.01% { opacity: 1; } 47.99% { opacity: 1; } 48% { opacity: 0; } 49% { opacity: 0; } 49.01% { opacity: 1; } } .split-wrap { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 240px; height: 260px; margin: auto; border-radius: 50%; transition: 10s ease; z-index: 100; /* This line */ } .j1 { position: absolute; left: 0; top: 0; width: 50%; height: 100%; overflow: hidden; transition: 10s ease; /* transform: translate(-350px) /* This line */ } .j2 { position: absolute; left: 50%; top: 0; width: 50%; height: 100%; overflow: hidden; transition: 10s ease; /* transform: translate(350px) This line */ } .curtain.slide .j1 { left: -500%; } .curtain.slide .j2 { left: 500%; } .wrap iframe { position: absolute; top: -3px; left: -3px; width: calc(100% + 6px); height: calc(100% + 6px); } .wrap, .jacket { position: absolute; top: -3px; left: -3px; width: calc(100% + 6px); height: calc(100% + 6px); } .hide { display: none; } /* movement class */ .move-right { transform: translate(350px); } .move-left { transform: translate(-350px); }
 <div class="outer"> <div class="tcell"> <div class="curtain-wrapper"> <div class="curtain-ratio-keeper"> <div class="split-wrap"> <div class="j1"> <div class="jacketa" title="[ Enjoy The Music ]"> <svg class="coversvg" width="70" height="75.4" viewBox="0 0 47.96 51.66"> <title>[ Enjoy The Music ]</title> <path class="back" d="M2,25.83V4.11A2.11,2.11,0,0,1,5.13,2.27L44.88,24.45a2.11,2.11,0,0,1,0,3.7L5.1,49.41A2.11,2.11,0,0,1,2,47.55V25.83" /> <path class="front" d="M2,25.83V4.11A2.11,2.11,0,0,1,5.13,2.27L44.88,24.45a2.11,2.11,0,0,1,0,3.7L5.1,49.41A2.11,2.11,0,0,1,2,47.55V25.83" /> </svg> </div> </div> <div class="j2"> <div class="jacketa" title="[ Enjoy The Music ]"> <svg class="coversvg" width="70" height="75.4" viewBox="0 0 47.96 51.66"> <title>[ Enjoy The Music ]</title> <path class="back" d="M2,25.83V4.11A2.11,2.11,0,0,1,5.13,2.27L44.88,24.45a2.11,2.11,0,0,1,0,3.7L5.1,49.41A2.11,2.11,0,0,1,2,47.55V25.83" /> <path class="front" d="M2,25.83V4.11A2.11,2.11,0,0,1,5.13,2.27L44.88,24.45a2.11,2.11,0,0,1,0,3.7L5.1,49.41A2.11,2.11,0,0,1,2,47.55V25.83" /> </svg> </div> </div> </div> <div class="curtain"> <div class="video-wrapper"> <div class="video-ratio-keeper"> <div class="wrap"> <div class="video video-frame"></div> </div> </div> </div> <div class="slide-wrap"></div> </div> </div> </div> </div> </div>

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