js实现进度条,实时控制进度条的暂停继续,动画需要流畅

在写一个vue音频组件。样式上会显示音频的进度条,播放的时候,进度条会顺畅的进行向前滚动,当用户点击暂停的时候会暂停进度条,点击继续进度条继续走,知道播放完成。

1.css transition动画实现方案。使用了transition实现,当只有一个音频组件的时候没任何问题,但是当一个页面存在多个音频的时候,transition状态会在多个音频组件的暂停/播放状态有问题,浏览器只会保存一个组件示例的transition是正确的,其他音频的tansition会有冲突问题,可以理解为浏览器的机制bug。

2.使用定时器实现动画。如果音频时长为4s,但是整个音频进度条有100px,那么js实现的动画就会显得比较卡顿,没有css那么顺畅,体验不是很好。

有没有比较好的的实现方式,有考虑使用vue transition实现,但是手机兼容性是个问题,特别是安卓4.4及以下系统手机卡顿严重。

阅读 4.6k
1 个回答

svg或者canvas?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题