javascript - 使用 jquery 添加不适用于 html5 视频播放器的类

标签 javascript jquery html video html5-video

我有一个简单的视频 block ,在视频结束时我显示某些 gif,

问题:

现在,当用户暂停视频时,GIF 也会显示,这意味着当视频结束时,GIF 现在会显示,当我再次播放视频并暂停视频时,GIF 会再次显示

待办事项

我希望当用户暂停视频时,gif 不应该显示,这意味着gif 应该只在视频结束时显示

这是我的解决方案

HTML

<div canplay id="video-block">
    <div id="video-container">
        <video id="videoplayer" playsinline muted autoplay>
            <source src="videos/good_job.mp4"></source>
        </video>
        <div id="interactive-layers">
        </div>

    </div>

    <div id="pause-play-button">
        <img id="play" src="images/play.png">
        <img id="pause" src="images/pause.png">
    </div>

JS

$(document).ready(function(){
        $("#videoplayer")[0].addEventListener("ended", onVideoEnded);
});


function showGif(gifname) {
        $("#gif-data").remove();
        var gif = $("<div id='gif-data'><audio class='audio' id='gifaudio'  autoplay src='" + gifs[gifname].audio + "'></audio><img class='gif' id='animatedgif' src='" + gifs[gifname].gif + "?rand=" + Math.random() + "'></div>")
        $("#interactive-layers").append(gif);
}


function onVideoEnded(e) {

        showGif("ed22");

}


$("#pause-play-button").on("click", function () {
        clearTheTimeout();
        if ($("#video-block video")[0].paused == true) {
                $("#gif-data").addClass("hidegif");
                $("#video-block video")[0].play();
                $("#pause").css("display", 'block');
                $("#play").css("display", "none");
        } else {
                $("#video-block video")[0].pause();
                $("#audioplayer")[0].pause();
                $("#gif-data").removeClass("hidegif");
                $("#pause").css("display", 'none');
                $("#play").css("display", "block");
        }
});

CSS

.hidegif{
    display: none;
}

不幸的是,当我点击暂停视频按钮时,我的 GIF 仍然出现,

我做错了什么?

最佳答案

我认为问题的发生是因为元素“gif-data”是动态创建的。尝试在父静态元素内查找元素。

    $('#video-block').find("#gif-data").addClass("hidegif");

这应该有效。

关于javascript - 使用 jquery 添加不适用于 html5 视频播放器的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57354449/

相关文章:

javascript - PHP自动注销无需刷新页面

javascript - 谷歌分析是否有设置禁止未经同意的用户使用 cookie

javascript - 将焦点放在第二个表上

javascript - 使用 JS SDK 时,Parse 应用程序 ID 如何保持安全?

jquery - 无法在 jQuery 中反转宽度动画 Action

javascript - 如何设置javascript在while循环中默认隐藏div

javascript - Onsen UI menu.SetMainPage 正在工作,但出现错误,导致 Phonegap 开发者应用程序出现奇怪的行为

javascript - 从数组中分离并附加值

css - 如何根据父div中子div的数量设置div的高度

html - 如何在<div>内显示内联<span>?