2011-12-13 3 views

risposta

0

puoi div fare sia con il video che con l'immagine, nascondere il video (display:none), quando si fa clic sull'immagine, nascondilo e mostra il video.

+0

Allready trovato lo script corretto! –

+0

@RonaldWildschut Ti dispiacerebbe posizionare la soluzione che hai trovato? –

+1

http://www.sitepoint.com/forums/showthread.php?579770-Embed-google-video-or-youtube-with-custom-thumbnail&p=4410479#post4410479 –

1

Ho trovato questo tramite Google e avevo bisogno di farlo non con un embed, ma con il nuovo stile (relativamente) iframe che YouTube ha per HTML5. Ho trovato la soluzione mancante in quanto non differenziava i nodi di testo dagli elementi (nextSibling di firefox e IE di nextSibling). Inoltre, quando si fa clic sul video, l'utente deve fare clic due volte, una volta sull'immagine, quindi una volta sul player di YouTube. Questo problema è stato corretto con il contrassegno autoplay nell'URL di YouTube. Il comportamento finale è corretta in Chrome, Firefox, Internet Explorer 7+, ecc

Ecco la mia soluzione finale:

<script type="text/javascript"> 
    function actualNextSibling(el) { // needed to smooth out default firefox/IE behavior 
     do { el = el.nextSibling } while (el && el.nodeType !== 1); 
      return el; 
    } 
</script> 
<div onclick="actualNextSibling(this).style.display='block'; this.style.display='none'"> 
    <img src="splash.jpg" alt="splash" style="cursor: pointer" /> 
</div> 
<div style="display: none"> 
    <iframe width="440" height="248" src="//www.youtube.com/embed/9FOZEbEpyA8?rel=0&autoplay=1"frameborder="0" allowfullscreen></iframe> 
</div> 
8

Ecco come farlo utilizzando jQuery. Gli esempi precedenti forniti, hanno comunque riprodotto il video anche quando il contenitore era nascosto.

Creare un contenitore per tenere il vostro miniature:

<div id="video"></div> 

Quindi è possibile lo stile la miniatura in CSS con qualcosa di simile:

#video { 
    display: block; 
    width: 320px; 
    height: 240px; 
    background: url(images/my_video_thumb.jpg) no-repeat top left; 
} 

... e poi si desidera rimuovere lo sfondo e crea il tuo iframe al volo usando jQuery con qualcosa del genere:

$('#video').on('click', function() { 
    $(this).html('<iframe src="http://www.youtube.com/embed/abcdef12345?rel=0&autoplay=1" width="320" height="240" frameborder="0" allowfullscreen="true">').css('background', 'none'); 
}); 

Demo: codepen (include VanillaJS e jQuery esempio)

13

provare qualcosa di simile:

<img src="placeholder.jpg" data-video="http://www.youtube.com/embed/zP_D_YKnwi0"> 
$('img').click(function(){ 
var video = '<iframe src="'+ $(this).attr('data-video') +'"></iframe>'; 
$(this).replaceWith(video); }); 

demo qui: http://jsfiddle.net/2fAxv/1/

+0

Spero che funzioni in Android e Iphone –