vue 中 弹幕的播放
前言
最近在搞弹幕的问题,小程序上的和vue上的,不想使用插件,于是自己摸索了一下,其实包括 2中弹幕形式 有序和无序的
直接上代码吧
<!-- 弹幕 -->
<template v-if=" barrageData.newsRocket.length > 0 ">
<!-- 'animation-duration':6+'s','animation-delay': item.delay+'s' -->
<div class="rocket barrage-wrapper" v-show=" barrageData.isBarrage ">
<div
class="barrage-context barrageTop"
:style="{top:0.8+'rem', 'animation-duration': barrageData.barrageTop.length > 1 ? barrageData.barrageTop.length * 4 +'s':'4s',
width:barrageData.barrageTop.length > 1?'':'120%'}"
>
<div class="display-list" v-for="(item,index) in barrageData.barrageTop" :key="'br'+index">
<div>
<img class="reImg" :src="item.avatar">
</div>
<div class="barrage-text" v-html="item.desc"></div>
</div>
</div>
</div>
<div class="rocket barrage-wrapper" v-show="barrageData.isBarrage">
<div
class="barrage-context barrageBottom"
:style="{top:1.8+'rem', 'animation-duration': barrageData.barrageBottom.length > 1? barrageData.barrageTop.length*5+'s':'4s',
width:barrageData.barrageBottom.length > 1?'':'120%'}"
>
<div class="display-list" v-for="(item,index) in barrageData.barrageBottom" :key="'br'+index">
<div>
<img class="reImg" :src="item.avatar">
</div>
<div class="barrage-text" v-html="item.desc"></div>
</div>
</div>
</div>
</template> <template v-else>
<div class="no-barrage" v-show=" activityData.register ">{{ barrageData.friendsDesc }}</div>
</template>
css
// 弹幕
.barrage-wrapper {
position: fixed;
height: 0.7rem;
width: 7.5rem;
white-space: nowrap;
text-overflow: clip;
.barrage-context {
display: flex;
justify-content: space-around;
// width: 100%;
height: 0.7rem;
left: 100%;
visibility: hidden;
// overflow: hidden;
position: absolute;
}
.display-list {
display: flex;
justify-content: space-around;
align-items: center;
height: 0.7rem;
// position: absolute;
// left: 0%;
// visibility: hidden;
color: #fff;
margin-right: 1.1rem;
}
img {
width: 0.7rem;
height: 0.7rem;
border-radius: 50%;
background: #141540;
border: 0.04rem solid rgba(255, 255, 255, 0.7);
position: relative;
}
.barrage-text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
background: rgba(0, 0, 0, 0.6);
white-space: nowrap;
margin: 0 -0.5rem;
height: 0.64rem;
line-height: 0.64rem;
padding: 0 0.7rem;
font-size: 0.24rem;
border-top-right-radius: 0.45rem;
border-bottom-right-radius: 0.45rem;
}
}
动画化的css
js 来判断他是 一条代码还是多条 代码来判断他的宽度是
再根据 css 来根据
@keyframes barrage {
from {
//left: 100%;
visibility: visible;
transform: translateX(0);
}
100% {
//left: 0%;
visibility: hidden;
transform: translateX(-180%);
}
}
@keyframes barrageBottom {
from {
visibility: visible;
transform: translateX(0);
}
100% {
visibility: hidden;
transform: translateX(-180%);
}
}
vue 中 弹幕的播放的更多相关文章
- vue中解决chrome浏览器自动播放音频 和MP3语音打包到线上
一.vue中解决chrome浏览器自动播放音频 需求 有新订单的时候,页面自动语音提示和弹出提示框: 问题 chrome浏览器在18年4月起,就在桌面浏览器全面禁止了音视频的自动播放功能.严格地来说, ...
- vue中通过hls.js播放m3u8格式的视频
近期做了一个功能,是接入一个海康的摄像头的监控视频,怎么获取m3u8的视频这里就不在叙述了,只说一下怎么将m3u8格式的视频成功播放 一.m3u8和HLS介绍 1.M3U8文件是指UTF-8编码格式的 ...
- Vue实现mp3音乐播放及动态进度条
今天碰到一个Vue点击mp3播放及进度条动态走动的小功能,记录一下: 首先是通过HTML5 audio标签引入音频: <template> <div class="x-fo ...
- vue中使用的一些问题(IE不兼容,打包样式不生效)
通过脚手架快速创建的项目,使用了swiper组件,项目中使用了es6语法,使用了babel-polyfill转化依旧不行,仔细排查项目中的使用组件,最后找到问题所在 swiper4.5.0版本太高,不 ...
- VUE中常用的十大过滤器
在vue的学习过程中,我发现过滤器是一个很好用的工具,过滤器(Filters)来渲染数据是一种很有趣的方式.过滤器不能替代Vue中的methods.computed或者watch,不改变真正的data ...
- Vue中如何插入m3u8格式视频,3分钟学会!
大家都知道video只支持ogg.webm.MP4格式,但是要是m3u8格式的视频怎么办?最近遇到这个问题在网上找了好多办法都不行,最后找到video.js后才完美解决,所以决定写一 ...
- 纯css3配合vue实现微信语音播放效果
前言 每次写点东西都扯两句-0-,这几天一半精力放在移动端,一半维护之前的项目.书也少看了,不过还好依旧保持一颗学习的心.对于css3我是之前有专门整理过的,因此对于原理之前也算了解.今天是项目中遇到 ...
- vue中的ref属性
1.什么是ref? ref是用于快速定位到dom结构,vue中一般不去操作dom结构,他是数据驱动的.jQuery会疯狂操作DOM {{msg}} mounted(){ let h = this.$r ...
- vue中如何不通过路由直接获取url中的参数
前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接 ...
随机推荐
- 网络编程介绍,C/S 架构,网络通讯协议,osi七层
网络编程: 什么是网络编程: 网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的 编写基于网络的应用程序的过程序称之为网络编程 为什么要学习网络编程: 我们已经知道计算机, ...
- windows中service.msc与regedit
Services.msc是Windows2000/XP/2003/Vista/7/2008/8/8.1/10系统中用来启动.终止并设置 Windows 服务的管理策略. 作用:控制系统服务. 性质:系 ...
- ORACLE 左连接 右连接 内连接 外连接 全连接 五中表连接方式
1.左连接 :left join 2.右连接:right join 3.内连接:inner join 4.外连接:outer join 5.全连接:full join
- java文件操作解析
转载:http://blog.csdn.net/cynhafa/article/details/6882061 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实 ...
- Spark中分布式使用HanLP(1.7.0)分词示例
HanLP分词,如README中所说,如果没有特殊需求,可以通过maven配置,如果要添加自定义词典,需要下载“依赖jar包和用户字典". 分享某大神的示例经验: 是直接"java ...
- 链表--笔记--数据结构(C++版)王红梅--自我思路整理与梳理
看到这篇文的很多人大概都知道链表是个什么玩意了.简单说就是一个又一个的指针,指针之间用指针连接起来. 本文的阅读 适合有c++基础的人群 以下: 这叫做一个结点. 这就是一个链表.我们主要使用的是 ...
- unittest之一框架、suite
1.unittest是Python的标准库里的模块,所以在创建测试方法时,需直接导入unittest即可 2.unittest框架的六大模块: 测试用例TestCase 测试套件TestSuit:测试 ...
- C# 面向对象5 this关键字和析构函数
this关键字 1.代表当前类的对象 2.在类当中显示的调用本类的构造函数(避免代码的冗余) 语法: ":this" 以下一个参数的构造函数调用了参数最全的构造函数!并赋值了那些不 ...
- 第二篇 jQuery 选择器
2-1,2 table隔行变色 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- liboqs-量子安全密码算法开源C库
liboqs是一个用于量子安全密码算法的开源C库. 一,概述 liboqs提供: 量子安全 密钥封装机制(KEM)和数字签名算法的开源实现的集合: 这些算法的通用API: 测试工具和基准测试例程. l ...