使用html,css和js给视频设置一个简易进度条

代码依次为body内标签创建,css样式  和script 代码

这里我们先创建我们所需要的标签

视频的盒子,视频文件,进度条,和用来播放,暂停的按钮

<body>
<!-- 设置一个视频盒子 -->
    <div class="videoBox">
        <!-- 引入视频 -->
        <video src="../../../../杂/【素材向】骂谁罕见! - 1.【素材向】骂谁罕见!(Av220190871,P1).mp4" autoplay="autoplay"></video>
        <!-- 给视频进度条一个css样式 -->
        <div class="jindu">
            <!-- 给视频进度条设置一个当前进度的背景颜色 -->
            <div class="jinduyanse"></div>
        </div>
    </div>
    <!-- 创建一个开始播放按钮 -->
    <button class="start">开始播放</button>
</body>

然后我们来设置我们标签所需要的简单样式

按钮我没有设置样式,因为写出来实现效果就行了,有需要的话可以自由发挥

css的进度条样式,width宽度属性,我们可以先写上25% -50%来便于观察效果

等js部分把进度条进度获取之后,需要把width宽度属性设置为0%

样式代码   ↓

 <style>
        /* 设置一个视频盒子 */
        .videoBox {
            width: 400px;
            /* 为了给进度条定位,需要给父级设置一个相对定位 */
            position: relative;
        }

        /* 引入视频,设置视频的尺寸 */
        video {
            width: 400px;
        }

        /* 给视频进度条一个css样式 */
        .jindu {
            width: 360px;
            height: 10px;
            border-radius: 15px;
            background: #959595;
            /* 给自制的进度条设置绝对定位,定位到想要的位置 */
            position: absolute;
            bottom: 5px;
            left: 20px;
        }

        /* 给视频进度条设置一个当前进度的背景颜色 */
        .jinduyanse {
            width: 0%;
            height: 10px;
            border-radius: 15px;
            background: #00ffcc;
        }
    </style>

布局写完了,接下来为重中之重

js的代码需要亿点逻辑,家里面养了逻辑猫的可以带着猫一起看

注释我会写的非常清楚,代码的思路我都会写在上面

js部分代码   ↓

<script>
        window.onload = function () {
            // 获取标签
            let video = document.querySelector('video')     // 获取video标签
            let start = document.querySelector('.start')    //获取开始播放按钮
            let jindu = document.querySelector('.jinduyanse')   //获取进度条
            let timer;           // 设置一个timer接收时钟
            let jindutiao = 0   // 设置进度条初始为0
            let flag = true      // 这里设置flag为true 备用
            // 给开始播放绑定点击事件
            start.addEventListener('click', function () {
                video.play()       // 点击按钮,视频开始播放

                // 设置时钟开始获取视频当前时间
                timer = setInterval(function () {
                    // 并实时显示当前进度
                    jindutiao = video.currentTime / video.duration * 100 + '%'
                    jindu.style.width = jindutiao   //将运算后的百分比赋值给标签的width属性
                }, 100)
                // 当视频结束时
                video.addEventListener('ended', function () {
                    clearInterval(timer)       // 清除定时器
                    flag = !flag                // 取反flag,使flag等于true
                    start.innerHTML = '开始播放'    // 将按钮文本改为开始播放
                })
                // 点击按钮时,如果flag = true
                if (flag) {
                    video.play()        // 则视频开始播放
                    flag = !flag        // 取反flag,使flag = false
                    start.innerHTML = '暂停播放'        // 将按钮文本改为暂停播放
                } else {              // 如果flag 不等于 true ,及flag = false 时
                    video.pause()       // 点击按钮将会暂停播放
                    flag = !flag        // 这时取反flag,使false 变回true
                    start.innerHTML = '开始播放'        //将按钮文本改为开始播放
                }
            })

        }
    </script>

到这就结束了家人们,大家加油

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值