2011-01-14 14 views
5

Ho un video HTML5 incorporato in una pagina impostata per la riproduzione automatica al caricamento. Quando un menu è commutato, è nascosto e una serie di immagini prende il suo posto. Quando il menu viene chiuso, il video torna. Mi è stato consigliato di interrompere il video mentre è nascosto e riprenderlo una volta che è tornato per risparmiare risorse, cosa che mi piacerebbe fare, ma fermarsi e riavviare (invece di riprenderlo).jQuery interrompe il video HTML5 quando è nascosto, si riavvia quando è visibile

Qualche suggerimento? So che è un'area grigia.

Grazie!

HTML:

<div id="content"> 
    <video id="vid_home" width="780" height="520" autoplay="autoplay" loop="loop"> 
     <source src="Video/fernando.m4v" type="video/mp4" /> 
     <source src="Video/fernando.ogg" type="video/ogg" /> 
     Your browser does not support this video's playback. 
    </video> 
    <img id="img_home" src="Images/home.jpg" alt="Fernando Garibay /> 
</div> 

Javascript:

// Navigation hover image preview 
$('#img_home').css('display', 'none'); 
$('.nav').hover(function(){ 
    $('#vid_home').fadeOut(600, function(){ 
     $('#img_home').fadeIn(800); 
    }); 
}); 
$('#item1').hover(function(){ 
    $('#img_home').attr('src', 'Images/music.jpg'); 
}); 
$('#item2').hover(function(){ 
    $('#img_home').attr('src', 'Images/photos.jpg'); 
}); 
$('#item3').hover(function(){ 
    $('#img_home').attr('src', 'Images/biography.jpg'); 
}); 
$('#item4').hover(function(){ 
    $('#img_home').attr('src', 'Images/discography.jpg'); 
}); 
$('#item5').hover(function(){ 
    $('#img_home').attr('src', 'Images/contact.jpg'); 
}); 
$('#item6').hover(function(){ 
    $('#img_home').attr('src', 'Images/blog.png'); 
}); 
// Navigation hover image leave 
    $('#trigger').mouseleave(function(){ 
     $('#img_home').fadeOut(400, function(){ 
      $('#vid_home').fadeIn(400); 
     }); 
    }); 

risposta

8

È necessario chiamare pause e play sugli elementi DOM, che sarà probabilmente simile a questa:

$('.nav').hover(function(){ 
    $('#vid_home').fadeOut(600, function(){ 
     $('#img_home').fadeIn(800); 
    }).get(0).pause(); // pause before the fade happens 
}); 

e

$('#trigger').mouseleave(function(){ 
    $('#img_home').fadeOut(400, function(){ 
     $('#vid_home').fadeIn(400, function() { 
      this.play(); // play after the fade is complete 
     }); 
    }); 
}); 
+3

come un fascino. grazie per il tuo tempo e competenza. – technopeasant

Problemi correlati