javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JS可交互视频进度条

用JS制作可交互的视频进度条的案例分享

作者:呆同学

这篇文章主要介绍了用JS制作可交互的视频进度条的案例,在开始制作视频进度条之前,想先给大家补充一些关于元素的一些特点和用法,为大家更好地理解接下来的分享,感兴趣的朋友可以参考下

前言

在开始制作视频进度条之前,想先给大家补充一些关于元素的一些特点和用法,为大家更好地理解接下来的分享。

块级元素

行内块级元素

行内元素

在设计控制视频进度条的布局时,你可以根据这些元素的特点来选择合适的元素类型,并结合 CSS 样式来实现你的设计。那么接下来,开干!

第一部分:HTML

<body>
    <div class="wrapper">
        <video src="./mv.mp4" width="765" height="430" controls class="video"></video>

        <div class="speed">
            <div class="speed-bar">1x</div>
        </div>
    </div>

<script src="./index.js"></script>
</body>

第二部分:CSS样式

* {
    /* 外边距 */
    margin: 0;
    /* 内边距 */
    padding: 0;
}
.wrapper {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
}
.speed {
    width: 50px;
    height: 430px;
    background-color: #fff;
    display: inline;
    border-radius: 50px;
    overflow: hidden;
}

.speed-bar {
    width: 100%;
    height: 16%;
    background: linear-gradient(to bottom, #2376ae, #c16ecf);
    display: flex;
    justify-content: center; 
    align-items: center;
    cursor: pointer;
}

第三部分:JavaScript

//获取白底容器
//在白色容器上监听鼠标的移动事件
//获取鼠标移动的距离
//根据鼠标移动的距离来设计彩色容器的高度

var speed = document.querySelector('.speed')
var speedBar = document.querySelector('.speed-bar')
var video = document.querySelector('.video')

speed.addEventListener('mousemove', function(e) {
    console.log(e.pageY);
    //offsetTop容器到浏览器顶部的距离
    var y = e.pageY - speed.getBoundingClientRect().top
    var percent = y / speed.offsetHeight 
    var height = Math.round(percent * 100) + '%'
    //用js修改speed-bar容器的高度
    speedBar.style.height = height

    var min = 0.4
    var max = 4
    var playSpeed = percent * (max - min) + min
    
    speedBar.textContent = playSpeed.toFixed(2) + 'x'
    video.playbackRate = playSpeed
})

这段 JavaScript 代码监听了速度控制条容器(.speed)上的鼠标移动事件,并根据鼠标在容器内的垂直位置来动态调整彩色容器(.speed-bar)的高度和视频的播放速度。让我逐步解释代码的作用:

这段代码实现了根据鼠标在速度控制条容器内的垂直位置动态调整彩色容器的高度,并根据高度计算出相应的播放速度应用到视频元素上。

效果展示

鼠标上下移动可控制视频播放速度,从上往下加快。

补充

因为我们是将HTML、CSS和JS代码分开写的,所以必须要在HTML文件中的头部添加<link rel="stylesheet" href="./style.css">, 以及在body中添加<script src="./index.js"></script>,你的 HTML 文件将会包含外部样式表和 JavaScript 文件,分别用于设置页面样式和实现交互功能。

以上就是用JS制作可交互的视频进度条的案例分享的详细内容,更多关于JS可交互视频进度条的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文