Come visualizzare un video nella finestra modale.

Vediamo un esempio di come  visualizzazione un  video in una finestra  modale, solo con CSS3, significa senza Javascript e ulteriori immagini.

Ha preso come la base la finestra modale in puro CSS, non ha cambiato fondamentalmente nulla, tranne che ho modificato il pulsante di chiusura, l'effetto di apparizione  e lo sfondo.

 Visualizzare un video nella finestra modale con oscuramento del resto della pagina.

Per mantenere un design responsivo ho impostato la  larghezza della finestra modale in%. Il video ho collocato in un contenitore <div>, con i parametri che danno delle garanzie di adattabilità di lettore video inserito attraverso iframe, object  o embed.

Markup HTML della finestra modale con video

L'ombreggiatura di sfondo è creata attraverso un contenitore separato <div class = "overlay" id = "VIDEO1"> </ div>, se per caso avrai necesita di fare in modo che la finestra modale  e lo sfondo ombreggiante si chiudono al clic al di fuori della finestra, utilizzare quest acostruzione<a href = " # "class =" overlay "id =" VIDEO1 "> </a>.

Per richiamare la nostra finestra modale con il video, come anche con qualsiasi altra finestra modale  si  utilizza un collegamento standard indicando come attributo href="",  identificatore della finestra modale. Se in una pagina si utilizzano piu finestre modali, basterebbe non dimenticare di controllare questi valori, vediamo un esempio del codice

<a href="#video1">Vedere video</a>

E importante anche di indicare parametri riguardanti altezza e larghezza massimi del video o impostare su auto width = "auto" height = "auto" per il iframe, cosi il  blocco con video sara regolato in automatico rispetto le dimensioni del contenitore principale.

<!-- blocco del video -->
<div class="overlay" id="video1"></div>
    <div class="modal">
         <div class="video__title">
             Semplice titolo e breve descrizione del video 
         </div>
         <div class="video" id="youtube">
              <iframe width="1280" height="720" src="https://www.youtube.com/embed/dZe-vQSr-Gs?ecver=2" frameborder="0" allowfullscreen></iframe>
         </div>
         <a href="/" onclick="void(0)" class="close"></a>
    </div>
<!-- fine blocco video -->

Stili CSS della finestra modale con video

Tutti gli stili potrai inserire in un fail css separato per puoi collegarlo alla  pagina o copiando il codice inserire nel tuo fail  di stili CSS del sito. Commenti nel codice sicuramente  ti aiuterano a capire come è stata fatta la finestra.

/** stili del blocco con lo sfondo ombreggiante **/
.overlay {
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   z-index: 10000;
   visibility: hidden;
/* lo sfondo ombregiante  */
   background-color: rgba(0, 0, 0, 0.8);
   opacity: 0;
   position: fixed; /* posizione fissa */
/* trasformazione della opacita al apertura   */
   -webkit-transition: opacity .5s;
   -moz-transition: opacity .5s;
   -ms-transition: opacity .5s;
   -o-transition: opacity .5s;
   transition: opacity .5s;
}
/* ativazione al clic  */
.overlay:target {
   visibility: visible;
   opacity: 1;
}
/** stili della finestra modale con contenuto */
.modal {
   top: 0;
   right: 0;
   left: 0;
   width: 50%;
   z-index: 10001;
/** trasparenza totale al inizio  */
   opacity: 0;
   display: block;
   visibility: hidden;
   position: absolute;
/* trasformazione della opacità al apertura  */
   -webkit-transition: opacity 500ms ease-in;
   -moz-transition: opacity 500ms ease-in;
   transition: opacity 500ms ease-in; 
   margin: 0 auto;
   padding: 24px;
   min-width: 320px;
   max-width: 1024px;
   width: 100%;
   border: 1px solid rgba(120,120,120,.7);
   -webkit-border-radius: 5px;
   -moz-border-radius: 5px;
   border-radius: 5px;
   background: rgba(60, 63, 65, 0.9); 
   -webkit-background-clip: padding-box;
   -moz-background-clip: padding;
   background-clip: padding-box;
   -webkit-box-shadow: 0 0 13px 3px rgba(0,0,0,.5);
   -moz-box-shadow: 0 0 13px 3px rgba(0,0,0,.5);
   box-shadow: 0 0 13px 3px rgba(0,0,0,.5);
}
/* attivare al clic  */
.overlay:target+.modal{
   top: 15%;
   visibility: visible;
   opacity: 1;
}
/* tablet */
@media only screen and (min-width: 768px) and (max-width: 959px) {
.modal {
    width: 95%;
  }
}
/* smartfone*/
@media only screen and (min-width: 459px) and (max-width: 767px) {
.modal {
    width:85%;  
  }
}
/* bottone di chiusura */
.close {
   position: absolute;
   width: 30px;
   height: 30px;
   right: 18px;
   top: 18px;
   z-index: 999999;
   cursor: pointer;
   text-align: center;
   text-decoration: none;
   line-height: 26px;
}
@media (max-width: 530px) {
.close {
   top: 6px;
  }
}
.close:after {
   content: 'X';
   display:block;
   width: 30px;
   height: 30px;
   -moz-border-radius: 50%;
   -webkit-border-radius: 50%;
   border-radius: 50%;
   border: 2px solid #fff;
   -moz-transition: all 0.6s;
   -webkit-transition: all 0.6s;
   transition: all 0.6s;
   -moz-transform: scale(0.85);
   -ms-transform: scale(0.85);
   -webkit-transform: scale(0.85);
   transform: scale(0.85);
}
 
.close:hover:after {
   transform: scale(1);
}
/* Blocco di intestazione del video  */
.video__title {
   height: auto;
   width: 70%;
   padding: 0px 5px 15px 5px;
   color: white;
   font: normal 16px/22px 'Open Sans', Calibri, Arial, sans-serif;
}
@media (max-width: 530px) {
.video__title {
   height: 38px;
   font-size: 12px;
   line-height: 18px;
  }
}
/* blocco adattivo con video  */
.video { 
   position: relative; 
   padding-bottom: 56.25%; 
   height: 0; 
   overflow:hidden; 
} 
.video iframe, 
.video object, 
.video embed {
   position: absolute; 
   top: 0; 
   left: 0; 
   width: 100%;
   height: 100%; 
}
/* -- */

Quando guardi la demo, prova a ridimensionare la finestra del browser, e non dimenticare di avviare il video, per poter verificare se la finestra e responsiva . Quando la  finestra modale viene chiusa, la riproduzione di video si interrompe. Ho usato un metodo molto semplice, semplicemente ho usato un link con attributo href=" "  vuoto , non ho trovato per adesso un altra soluzioni semplice più efficace e valida, senza dover collegare javascript.

 

Finestra modale con video in CSS3, esempio

Per vedere il video cliccare bottone sotto:

Interrompere la riproduzione del video nella finestra modale con js.

Il metodo funziona bene per il video incorporato da YouTube. Prima di tutto, è necessario collegare la libreria jQuery (se non è ancora collegata al tuo sito web), ad esempio, da  servizio di Google Code:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>

Dopo di che collegare YouTube JavaScript Player API:

<script type="text/javascript" src="http://www.youtube.com/player_api"></script>

Con l'API JavaScript è possibile controllare il lettore Chromeless Player e lettore incorporato di YouTube utilizzando codice JavaScript. Per la nostra finestra modale con il video incorporato, il nostro javascript sarà cosi :

<script>
        var player;
        function onYouTubePlayerAPIReady() {
        player = new YT.Player('player');
        }
 
        $('#stop').click(function(){
        player.stopVideo()
        })
    </script>

Dopo di che al elemento  (iframe) con il video, è necessario assegnare un ID, che sia id = "player". Anche per il pulsante di chiusura della finestra modale,  prescrive il suo  ID:

<iframe id="player" src="https://www.youtube.com/embed/dZe-vQSr-Gs?ecver=3&enablejsapi=1" width="640" height="360"  allowfullscreen></iframe>

Qui è  importante di indicare l'atributo  enablejsapi=1  per il nostro video, a parte l'ID.

<a href="#close" id="stop" title="Chiudere" class="close"></a>

Facendo clic sul pulsante con  id = "stop" sarà richiamata la funzione  player.stopVideo (), la finestra si chiude e la riproduzione si fermerà.

Letto 476 volte