react 视频回放时间轴滚动条

import React, { useEffect, useState } from 'react'
import styles from './index.less'

import moment from 'moment'
import { getHours, showTime } from './utils'
type timeProgressBarProps = {
    beginTime: string;
    endTime: string;
    getBeginTime: (time: string) => void

}
var beginLineX: any
var timesArrs: Array<{ lable: string; value: string, num: string }> = []
const timeProgressBar: React.FC<timeProgressBarProps> = (props) => {
    const [times, setTimes] = useState<Array<{ lable: string; value: string, num: string }>>([])
    const [nowTime, setNowTime] = useState<string>()
    const { beginTime, endTime, getBeginTime } = props
    const changeTime = () => {
        let div = document.getElementById("timesBox")!
        div.addEventListener('scroll', function (event) {
            // 在此处执行滚动条拖动事件的处理逻辑
            let beginLine = document.getElementById("beginLine")!
            beginLineX = beginLine.getBoundingClientRect().left - 190
            let endX = beginLine.getBoundingClientRect().left
            timesArrs.map((item, i) => {
                let timesItemX = document.getElementById("timesItem" + i)?.getBoundingClientRect().left!
                if (timesItemX >= beginLineX && timesItemX <= endX) {
                    let allS = parseInt(((timesItemX - beginLineX - 190) / 190) * 3600 as any)
                    let lastTime = item.lable + ':' + showTime(allS)
                    setNowTime(lastTime)
                    getBeginTime(lastTime)
                }

            })


        });
    }
    function getTimeArray() {
        let allTimeHours: any = moment(endTime).diff(
            moment(beginTime),
            "hours"
        ) / 24;
        let videoHours = getHours(moment(endTime).diff(
            moment(beginTime),
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值