Javascript 如何显示并使自己的播放控制youtube嵌入IframePlayerAPI,通过滚动事件触发
如果我用这个Javascript 如何显示并使自己的播放控制youtube嵌入IframePlayerAPI,通过滚动事件触发,javascript,youtube,youtube-iframe-api,Javascript,Youtube,Youtube Iframe Api,如果我用这个 var player; function onYouTubeIframeAPIReady() { player = new YT.Player('video-placeholder', { width: 600, height: 400, videoId: 'zYdquUPcRSw', playerVars: { color: 'white', },
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('video-placeholder', {
width: 600,
height: 400,
videoId: 'zYdquUPcRSw',
playerVars: {
color: 'white',
},
});
}
function myFunction() {
console.log(player);
player.playVideo();
}
它可以工作,但我想在触发滚动事件时显示youtube,所以我添加了这样的行代码
var player;
function onYouTubeIframeAPIReady() {
window.onscroll = function() {
player = new YT.Player('video-placeholder', {
width: 600,
height: 400,
videoId: 'zYdquUPcRSw',
playerVars: {
color: 'white',
},
});
}
}
function myFunction() {
console.log(player);
player.playVideo();
}
它可以工作,youtube在我滚动窗口时显示,但是函数playVideo()
不起作用(注意:playVideo()
里面有myFunction()
)。在我尝试用console.log(player)
显示player
变量之后。我发现变量中没有这样的函数:
当我不使用window.onscroll函数时,结果不同,如果我使用console.log到variable player,结果如下:
是否可以“使用youtubeIframeAPI显示并制作自己的控制youtube,并由滚动事件触发”这可能是由于YT的多次启动。播放器处于滚动状态,请尝试将其限制为在第一次滚动后仅触发一次。@AbhishekKumarTiwari我想可能是因为滚动事件触发多次,但我用另一个只触发一次的事件进行了更改,我将“scroll”事件更改为单击“event to BODY”元素,它仍然是一样的,仅当我使用事件“load”时才起作用。这可能是由于YT.Player多次启动的缘故,因为它在scroll上,试着限制它在第一次滚动后只触发一次。@AbhishekKumarTiwari我想可能是因为滚动事件触发了多次,但我已经更改了另一个只触发一次的事件,我将“滚动”事件更改为单击事件到主体元素,它仍然是一样的,只有在使用事件“加载”时才有效。