Mit diesem Code pausiert das Video, sobald ich scrollte. Ich möchte das Video anhalten, wenn es nicht mehr angezeigt wird. Wie mache ich das?Wiedergabe von YouTube-Video, wenn Bildlauf in Sicht ist
//This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
//This function creates an <iframe> (and YouTube player)
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('video', {
height: '100%',
width: '100%',
videoId: 'V6Y-ahQFQDA',
playerVars: {
'start': '1',
'color': 'white',
'controls': '1',
'showinfo': '0'
},
events: {
'onReady': playOnScroll,
'onStateChange': playOnScroll
}
});
}
Der Teil vorher ist das Video zu laden. Ich denke, mein Problem ist in dieser, wenn auch sonst, Aussage. Sobald ich mit dem Scrollen anfange, beginnt das Kommando pausiert zu starten, und ich kann es nicht zum Laufen bringen.
function playOnScroll() {
var video = document.getElementById('video');
var x = video.offsetLeft,
y = video.offsetTop,
w = video.offsetWidth,
h = video.offsetHeight,
r = x + w, //right
b = y + h, //bottom
visibleX, visibleY, visible;
visibleX = Math.max(0, Math.min(w, window.pageXOffset + window.innerWidth - x, r - window.pageXOffset));
visibleY = Math.max(0, Math.min(h, window.pageYOffset + window.innerHeight - y, b - window.pageYOffset));
visible = visibleX * visibleY/(w * h);
var percent = 0.6;
var inView = visible > percent;
if (inView) {
console.log('play');
player.playVideo();
} else {
console.log('paused');
player.pauseVideo();
}
}
window.addEventListener('scroll', playOnScroll, false);
window.addEventListener('resize', playOnScroll, false);
Vielleicht kann diese Frage zu Ihnen helfen: http://stackoverflow.com/questions/26111919/autoplay-youtube-video-when-scrolled-to –
Ich habe bereits da, es funktioniert nicht für mich. thx –