vue实现弹幕功能


Posted in Javascript onOctober 25, 2019

(1)效果

vue实现弹幕功能

vue实现弹幕功能

如上图所示的效果,这里我们使用vue 制作。

(2)使用技术 vue + vue-baberrage

1.安装:

 npm install vue-baberrage

2.引入

方式一:

import Vue from 'vue'
import { vueBaberrage } from 'vue-baberrage'
Vue.use(vueBaberrage)

方式二:

const vueBaberrage = request('vue-baberrage').vueBaberrage

方式三:

<script src="./dist/vue-baberrage.js"></script>

3.使用

HTML

<div id="app">
<vue-baberrage
   :isShow= "barrageIsShow"
   :barrageList = "barrageList"
   :loop = "barrageLoop"
   >
  </vue-baberrage>
</div>

JS

import { MESSAGE_TYPE } from 'vue-baberrage'

export default {
 name: 'app',
 data () {
  return {
   msg: 'Hello vue-baberrage',
   barrageIsShow: true,
   currentId : 0,
   barrageLoop: false,
   barrageList: []
  }
 }, 
 methods:{
  addToList (){
   this.barrageList.push({
    id: ++this.currentId,
    avatar: "./static/avatar.jpg",
    msg: this.msg,
    time: 5,
    type: MESSAGE_TYPE.NORMAL,
   });
 ...

(3)实例演示

这个封装成一个 vue的组件:

<template>
 <div class="barrages-drop">
  <vue-baberrage
   :isShow="barrageIsShow"
   :barrageList="barrageList"
   :maxWordCount="maxWordCount"
   :throttleGap="throttleGap"
   :loop="barrageLoop"
   :boxHeight="boxHeight"
   :messageHeight="messageHeight"
  >
  </vue-baberrage>
 </div>
</template>
<script>
import Vue from 'vue';
import { vueBaberrage, MESSAGE_TYPE } from 'vue-baberrage';
Vue.use(vueBaberrage);
export default {
 name: 'Barrages',
 data() {
 return {
  msg: '马优晨就是个辣鸡~',
  barrageIsShow: true,
  messageHeight: 3,
  boxHeight: 150,
  barrageLoop: true,
  maxWordCount: 3,
  throttleGap: 5000,
  barrageList: []
 };
 },
 mounted() {
 this.addToList();
 },
 methods: {
 addToList() {
  let list = [
  {
   id: 1,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 3,
   barrageStyle: 'red'
  },
  {
   id: 2,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 8,
   barrageStyle: 'green'
  },
  {
   id: 3,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 10,
   barrageStyle: 'normal'
  },
  {
   id: 4,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 5,
   barrageStyle: 'blue'
  },
  {
   id: 5,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 6,
   barrageStyle: 'red'
  },
  {
   id: 6,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 12,
   barrageStyle: 'normal'
  },
  {
   id: 7,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 5,
   barrageStyle: 'red'
  },
  {
   id: 8,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 5,
   barrageStyle: 'normal'
  },
  {
   id: 9,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 8,
   barrageStyle: 'red'
  },
  {
   id: 10,
   avatar: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3064584167,3502823640&fm=26&gp=0.jpg',
   msg: this.msg,
   time: 10,
   barrageStyle: 'yellow'
  }
  ];
  list.forEach((v) => {
  this.barrageList.push({
   id: v.id,
   avatar: v.avatar,
   msg: v.msg,
   time: v.time,
   type: MESSAGE_TYPE.NORMAL,
   barrageStyle: v.barrageStyle
  });
  });
 }
 }
};
</script>
<style lang="less">
.barrages-drop {
 .blue {
 border-radius: 100px;
 background: #e6ff75;
 color: #fff;
 }
 .green {
 border-radius: 100px;
 background: #75ffcd;
 color: #fff;
 }
 .red {
 border-radius: 100px;
 background: #e68fba;
 color: #fff;
 }
 .yellow {
 border-radius: 100px;
 background: #dfc795;
 color: #fff;
 }
 .baberrage-stage {
 position: absolute;
 width: 100%;
 height: 212px;
 overflow: hidden;
 top: 0;
 margin-top: 130px;
 }
}
</style>

github地址:

https://github.com/superhos/vue-baberrage/blob/master/docs/zh/README.md#plugin-options

总结

以上所述是小编给大家介绍的vue实现弹幕功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JavaScript入门教程(5) js Screen屏幕对象
Jan 31 Javascript
LazyLoad 延迟加载(按需加载)
May 31 Javascript
javascript中&quot;/&quot;运算符常见错误
Oct 13 Javascript
javascript中不提供sleep功能如何实现这个功能
May 27 Javascript
java和javascript获取word文档的书签位置对比
Jun 19 Javascript
Javascript实现代码折叠功能
Aug 25 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
详解Vscode中使用Eslint终极配置大全
Nov 08 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 Javascript
package.json中homepage属性的作用详解
Mar 11 Javascript
vue+AI智能机器人回复功能实现
Jul 16 Javascript
vue $router和$route的区别详解
Dec 02 Vue.js
vue指令v-html使用过滤器filters功能实例
Oct 25 #Javascript
使用layui前端框架弹出form表单以及提交的示例
Oct 25 #Javascript
layui form表单提交后实现自动刷新
Oct 25 #Javascript
jquery实现购物车基本功能
Oct 25 #jQuery
vue中@change兼容问题详解
Oct 25 #Javascript
vue下的@change事件的实现
Oct 25 #Javascript
微信小程序(订阅消息)功能
Oct 25 #Javascript
You might like
PHP4中session登录页面的应用
2008/07/25 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
php fread函数使用方法总结
2019/05/28 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
Python中偏函数用法示例
2018/06/07 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
小学教师办公室制度
2014/02/03 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
广告学专业求职信
2014/06/19 职场文书
建筑结构施工求职信
2014/07/11 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
节约用电倡议书
2015/04/28 职场文书
创业计划书之面包店
2019/09/17 职场文书
八年级作文之我的母亲
2019/12/10 职场文书