最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 你也在你的应用上添加B站上的弹幕效果

    正文概述 掘金(孙叫兽)   2020-12-24   354

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

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

    你也在你的应用上添加B站上的弹幕效果

    rc-bullets具有以下特性:

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

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

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

    • 鼠标悬浮弹幕暂停

    你也在你的应用上添加B站上的弹幕效果

    前端工程师安装方式:

    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(
            <StyledBullet
              head={headUrl}
              msg={bullet}
              backgroundColor={'#fff'}
              size='large'
            />
          );
          // or 还可以这样使用,效果等同使用 StyledBullet 组件
          screen.push({msg:bullet,head:headUrl,color:"#eee" size="large" backgroundColor:"rgba(2,2,2,.3)"})
        }
      };
      return (
        <main>
          <div className="screen" style={{ width: '100vw', height: '80vh' }}></div>
          <input value={bullet} onChange={handleChange} />
          <button onClick={handleSend}>发送</button>
        </main>
      );
    }
    

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


    起源地下载网 » 你也在你的应用上添加B站上的弹幕效果

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元