gpt4 book ai didi

javascript - 滚动播放 Html5 视频

转载 作者:行者123 更新时间:2023-12-01 05:14:52 26 4
gpt4 key购买 nike

我正在一个 WordPress 网站上工作,下面的代码可以按照我想要的方式工作(仅播放一次,“重播”按钮出现在末尾)

我希望它在滚动到 ie 时开始播放。在视口(viewport)中。

我在这里看到了几种不同的方法来实现这一点,但我无法让它们与我当前的代码很好地配合。

HTML

<div class="spacer">

</div>
<div class="video-wrapper">
<video id="bVideo" muted autoplay>
<source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" />
</video>
<div id="playButton" class="playButton" onclick="playPause()"></div>
<div class="replayButton" id="replayButton" onclick="playPause()">REPLAY ↻</div>
</div>
<script>


var bunnyVideo = document.getElementById("bVideo");
var el = document.getElementById("playButton");
var replay = document.getElementById("replayButton");
replay.style.visibility = "hidden";

function playPause() {
if (bunnyVideo.paused)
{
bunnyVideo.play();
replay.className = "replayButton";
replay.style.visibility = "hidden";
}
else
{
bunnyVideo.pause();
el.className = "playButton";
replay.className = "";
}
}

function playPauseControls() {
if (!bunnyVideo.paused) {
el.className ="";
replay.className = "";
} else {
el.className = "playButton";
replay.className = "";
}
}

function videoEnd() {
replay.className = "replayButton";
replay.style.visibility = "visible";
el.className = "";
}




function showControls(){
bunnyVideo.setAttribute("controls","controls");
}
function hideControls(){
bunnyVideo.removeAttribute("controls","controls");
}

/*Google Analytics Tracker Function*/
/*Assuming you've already set up the Google Analytics script function on your webpage. This just activates a trigger event when the video plays.*/
/*function bunnyVideoView() {
ga('send', 'event', {
'eventCategory': 'Bunny Video',
'eventAction': 'play',
'eventLabel': 'Bunny Video View'
});
}*/


bunnyVideo.addEventListener("play", playPauseControls, false);
bunnyVideo.addEventListener("pause", playPauseControls, false);
bunnyVideo.addEventListener("mouseout", hideControls, false);
bunnyVideo.addEventListener("ended", videoEnd, false);
/*Google Analytics Tracker*/
/*bunnyVideo.addEventListener("play", bunnyVideoView, false);*/

</script>

CSS

.spacer {
height: 400px;
}

.video-wrapper {
position: relative;
max-width: 680px;
}

.video-wrapper > video {
width: 100%;
max-width: 100%;
box-sizing: border-box;
vertical-align: middle;
cursor: pointer;
}

/* Hide iOS Play Button */
video::-webkit-media-controls-start-playback-button {
display: none!important;
-webkit-appearance: none;
}


.playButton {
border-radius: 100px;
border: 8px solid #fff !important;
height: 100px;
position: absolute;
width: 100px;
margin: auto;
top: 0;
bottom: 0;
right: 0;
left: 0;
cursor: pointer;
display: block;
opacity: 0.95;
transition: opacity 400ms;
}

.playButton:before {
content: "";
display: block;
width: 0;
height: 0;
border-style: solid;
border-width: 25px 0 25px 50px;
border-color: transparent transparent transparent #fff;
position: absolute;
top: 0;
left: 0;
right: -10px;
bottom: 0;
margin: auto;
}

.replayButton {
color: black;
position: relative;
text-align: center;
margin: auto;
margin-top: 0px;
cursor: pointer;
display: block;
opacity: 0.95;
transition: opacity 150ms;
}

.replayButton:hover, .replayButton:focus {
color: #ea7200;
}

.replayButton:before {
height: 45px;
width: 45px;
position: absolute;
top: 18px;
left: 18px;
content: '';
display: block;
border-color: transparent white white white;
border-radius: 50%;
border-style: solid;
border-width: 8px;
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
}
.replayButton:after {
border-color: transparent transparent transparent white;
border-style: solid;
border-width: 0 45px 22px 22px;
height: 0;
position: absolute;
top: 40px;
left: 15px;
bottom: 0;
right: 0;
width: 0;
content: "";
display: block;
margin: auto;
}

https://jsfiddle.net/ag3sowbg/

最佳答案

我前段时间必须解决类似的任务。

首先,添加一个绝对位于视频包装器死点的空元素。

接下来,将视口(viewport)的“带”定义为视频触发器的跟踪区域。

window.scroll 上,您只需检测碰撞触发器是否进入或离开触发区域,然后播放或暂停视频。

我希望这有帮助: CodePen link

PS:我可能会非常小心地添加自定义播放/重播按钮,因为不同浏览器中的许多媒体播放器都使用自己的(Safari、Firefox),并且您很可能最终会遇到两者相互竞争(请注意,浏览器默认设置总是获胜)。去过那里 :) 如果它们不是必需的,请将它们删除...

关于javascript - 滚动播放 Html5 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50478920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com