博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你也在你的应用上添加B站上的弹幕效果
阅读量:2047 次
发布时间:2019-04-28

本文共 1523 字,大约阅读时间需要 5 分钟。

背景:现在弹幕已成为各大视频网站的标配,其实,弹幕最早是诞生于日本的一个二次元网站Niconico。后来A站和B站将其引入,开启了国内弹幕文化的先河。

开源地址:

相比点赞、转发、评论,弹幕的形式让用户的互动性更强,因此也更受大家喜爱,很多人已经养成了看视频必开弹幕的习惯。

假如程序员自己要实现一个弹幕功能会难么?已经有人在Github上造了一个——rc-bullets。rc-bullets是一个基于 CSS3 Animation,使用 React 构建,可扩展,高性能的弹幕组件。

rc-bullets具有以下特性:

  • 支持传入 React 组件,灵活控制弹幕内容和 UI,并提供一个默认样式组件:<StyledBullet/>

  • 弹幕屏幕管理:清屏,暂停,隐藏(后续可能会加入针对单个弹幕的控制)

  • 弹幕动画参数化:运动函数(匀速/ease/步进/cubic-bezier)、时长(秒)、循环次数、延迟等

  • 鼠标悬浮弹幕暂停

前端工程师安装方式:

npm:

npm install --save rc-bullets

 yarn:

yarn add rc-bullets

初始化一个弹幕场景:

import React, { useEffect, useState } from 'react';import BulletScreen, { StyledBullet } from 'rc-bullets';const headUrl='https://zerosoul.github.io/rc-bullets/assets/img/heads/girl.jpg';export default function Demo() {  // 弹幕屏幕  const [screen, setScreen] = useState(null);  // 弹幕内容  const [bullet, setBullet] = useState('');  useEffect(() => {    // 给页面中某个元素初始化弹幕屏幕,一般为一个大区块。此处的配置项全局生效    let s = new BulletScreen('.screen',{duration:20});    // or    // let s=new BulletScreen(document.querySelector('.screen));    setScreen(s);  }, []);  // 弹幕内容输入事件处理  const handleChange = ({ target: { value } }) => {    setBullet(value);  };  // 发送弹幕  const handleSend = () => {    if (bullet) {      // push 纯文本      screen.push(bullet);      // or 使用 StyledBullet      screen.push(        
); // or 还可以这样使用,效果等同使用 StyledBullet 组件 screen.push({msg:bullet,head:headUrl,color:"#eee" size="large" backgroundColor:"rgba(2,2,2,.3)"}) } }; return (
);}

如果你也对弹幕感兴趣,你可以试一试!!!

转载地址:http://qrlof.baihongyu.com/

你可能感兴趣的文章
【Selenium】selenium中隐藏元素如何定位?
查看>>
【Mock】【接口测试】【面试】mock-server 环境搭建—加分项!
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】toeic托业必背核心词汇_修正版
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】新托业全真题库---TEST1
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>
【托业】【跨栏阅读】错题集-REVIEW1
查看>>
【托业】【跨栏】3
查看>>
【托业】【跨栏】REVIEW2
查看>>
【托业】【全真题库】TEST3-语法题+阅读题
查看>>
从json_encode过来的的字符串被返回到html页面时的解析
查看>>
Javascript的RegExp对象(转载自网络)
查看>>
rwx对于文件和目录的意义
查看>>
借助csv用PHP生成excel文件
查看>>
使用SimpleXML解析xml文件数据
查看>>
php读取excel文档内容(转载)
查看>>