返回顶部
首页 > 资讯 > 前端开发 > JavaScript >js实现简易弹幕系统
  • 769
分享到

js实现简易弹幕系统

2024-04-02 19:04:59 769人浏览 八月长安
摘要

本文实例为大家分享了原生js实现弹幕效果的具体代码,供大家参考,具体内容如下 实现思路 1、先写好静态页面框架 <div id='father'> &

本文实例为大家分享了原生js实现弹幕效果的具体代码,供大家参考,具体内容如下

实现思路

1、先写好静态页面框架


<div id='father'>
        <div id="top">
            <video src="./video/s10_2020129112346.mp4" controls autoplay muted loop></video>
            <!-- controls显示标准的视频控件 autoplay 视频自动播放(只有设置了muted属性才能自动播放)
                 muted静音播放 loop 循环播放-->
        </div>
        <div id="bottom">
            <input type="text" id="txt">
            <input type="button" id="btn" value="发送">
        </div>
</div>

2、给简单的CSS代码让页面美观一点


*{
   
            margin: 0;
            padding: 0;
        }
        body{
            background-color: burlywood;
        }
        #father{
            width: 800px;
            height: 550px;
            margin: 50px auto;
        }
        #top{
            width: 800px;
            height: 500px;
        }
        video{
            width: 800px;
            height: 500px;
        }
        #bottom{
            width: 800px;
            height: 50px;
            background-color: #000;
            text-align: center;
            line-height: 50px;
        }

这样一个简单的静态页面就完成了,剩下的我们就来写JS代码。

3、我们先来封装几个函数来方便后面使用。


 //随机生成一种颜色
 function rgb (){
        let r = Math.floor(Math.random() * 256);
        let g = Math.floor(Math.random() * 256);
        let b = Math.floor(Math.random() * 256);
        return 'rgb('+r+','+g+','+b+')'
    }
    //生成指定范围的数据整数
    function stochastic(max,min){
        return Math.floor(Math.random()*(max-min)+min);
    }

我们发送的弹幕放在span标签中,这里我们要用定位将span放在#top中(子绝父相)


 //在<div id='#top'></div>添加span标签
 function barrage(){
       let span = document.createElement("span");
        span.innerhtml = txt.value;
        span.style.color = rgb();   //弹幕颜色
        span.style.fontSize = stochastic(50,12) + 'px';  //字体大小  
        span.style.top = stochastic(420,0) +'px'; //出现位置
        let right = -2000
        span.style.right = right + 'px' //距离右边的距离
        tops.appendChild(span);   //在<div id='#top'></div>添加span标签
        //通过计时器来实现弹幕的移动
        let tiem = setInterval(()=>{
            right++;
            span.style.right = right + 'px' 
            if( right > 800){   
                tops.removeChild(span);   //当弹幕移动出了视频时,直接销毁该元素
                clearInterval(tiem); //关闭计时器
            }
        },10)//觉得速度太慢可以在这调整
  }

4、封装好了函数,现在就来调用


let btn = document.getElementById('btn');
//给按钮添加点击事件
    btn.onclick = ()=>{
        if(txt.value=='') return; //当用户输入为空时直接返回
        barrage(); 
        txt.value = '';  //清空input框
     }    
     //添加一个键盘的监听事件(回车)
    document.addEventListener('keydown', function (e) {
        if (e.keyCode == 13) {
           if(txt.value=='') return;
            barrage();
            txt.value = '';
        }
    });

最后附上全部代码,希望对你有所帮助


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js弹幕效果</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            background-color: burlywood;
        }
        #father{
            width: 800px;
            height: 550px;
            margin: 50px auto;
        }
        #top{
            width: 800px;
            height: 500px;
            position: relative;
            overflow:hidden;   
        }
        video{
            width: 800px;
            height: 500px;
            object-fit:fill; 
        }
        #bottom{
            width: 800px;
            height: 50px;
            background-color: #000;
            text-align: center;
            line-height: 50px;
        }
        span{
            position: absolute;
            right: 0;
            top:0;
        }
    </style>
</head>
<body>
    <div id='father'>
        <div id="top">
            <video src="./video/s10_2020129112346.mp4" controls autoplay muted loop></video>
        </div>
        <div id="bottom">
            <input type="text" id="txt">
            <input type="button" id="btn" value="发送">
        </div>
    </div>
    <script>
        let txt = document.getElementById('txt');
        let btn = document.getElementById('btn');
        let tops = document.getElementById('top');
        //给按钮添加点击事件
        btn.onclick = ()=>{
            if(txt.value=='') return;   //当用户输入为空时直接返回
            barrage();
            txt.value = '';   //清空input框
        }    
        //添加一个键盘的监听事件(回车)
        document.addEventListener('keydown', function (e) {
            if (e.keyCode == 13) {
                if(txt.value=='') return;    //当用户输入为空时直接返回
                barrage();
                txt.value = '';    //清空input框
            }
        });
       //随机生成一种颜色
        function rgb (){
            let r = Math.floor(Math.random() * 256);
            let g = Math.floor(Math.random() * 256);
            let b = Math.floor(Math.random() * 256);
            return 'rgb('+r+','+g+','+b+')'
        }
        //生成指定范围的数据整数
        function stochastic(max,min){
            return Math.floor(Math.random()*(max-min)+min);
        }
        //在<div id='#top'></div>添加span标签
        function barrage(){
            let span = document.createElement("span");
            span.innerHTML = txt.value;
            span.style.color = rgb();
            span.style.fontSize = stochastic(50,12) + 'px';
            span.style.top = stochastic(420,0) +'px';
            span.style.right = -200 + 'px';
            tops.appendChild(span);
            let right = -200;
            let tiem = setInterval(()=>{
                right++;
                span.style.right = right + 'px' 
                if( right > 800){
                    tops.removeChild(span);  //当弹幕移动出了视频时,销毁该元素
                    clearInterval(tiem);   //关闭计时器
                }
            },10)//觉得速度太慢可以在这调整
        }
    </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: js实现简易弹幕系统

本文链接: https://lsjlt.com/news/135358.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • js实现简易弹幕系统
    本文实例为大家分享了原生js实现弹幕效果的具体代码,供大家参考,具体内容如下 实现思路 1、先写好静态页面框架 <div id='father'> &...
    99+
    2024-04-02
  • 原生js实现简易抽奖系统
    本文实例为大家分享了js实现简易抽奖系统的具体代码,供大家参考,具体内容如下 效果图 原理: 其实这里的原理就是通过按钮的状态是开始抽奖还是停止 如果i=ture 那就触发定时器 ...
    99+
    2024-04-02
  • 原生js怎么实现简易抽奖系统
    这篇文章主要讲解了“原生js怎么实现简易抽奖系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“原生js怎么实现简易抽奖系统”吧!效果图原理:其实这里的原理就是通过按钮的状态是开始抽奖还是停止...
    99+
    2023-06-29
  • JS实现弹幕小案例
    本文实例为大家分享了JS实现弹幕小案例的具体代码,供大家参考,具体内容如下 效果图: 步骤分析: 1、收集用户输入内容,根据内容创建一个标签--span,追加到某个容器中 2、为元...
    99+
    2024-04-02
  • js实现七夕表白弹幕效果 jQuery实现弹幕技术
    本文实例为大家分享了js与jQuery技术实现表白弹幕,供大家参考,具体内容如下 js七夕表白弹幕效果简单版效果: 关键代码: <script> v...
    99+
    2024-04-02
  • JS实现视频弹幕效果
    使用ES6的模块化开发及观察者模式来实现。观察者模式有很多种形式,这里是使用“注册—通知—撤销注册”的形式。TimeManager类可以返回一个单例,每一条弹幕作为一个观察者,注册到...
    99+
    2024-04-02
  • js怎么实现弹幕功能
    js实现弹幕功能的方法:1、创建html文件;2、添加html代码架构;3、在body标签中使用div、input、button标签分给页面设计效果显示框、输入框、弹幕提交按钮;4、添加script标签并写入js代码来实现弹幕效果;5、通过...
    99+
    2024-04-02
  • Java实现简易购物系统
    本文实例为大家分享了Java实现简易购物系统的具体代码,供大家参考,具体内容如下 用基本语句去实现一个购物系统 package cn.ybk;   import java.util....
    99+
    2024-04-02
  • Android编程实现简易弹幕效果示例【附demo源码下载】
    本文实例讲述了Android编程实现简易弹幕效果。分享给大家供大家参考,具体如下: 首先上效果图,类似于360检测到骚扰电话页面: 布局很简单,上面是一个RelativeLa...
    99+
    2022-06-06
    示例 demo Android
  • python实现简易名片管理系统
    本文实例为大家分享了python实现名片管理系统的具体代码,供大家参考,具体内容如下 功能需求 用户输入数字选择要进行的操作 添加名片 删除名片 修...
    99+
    2024-04-02
  • java实现简易外卖订餐系统
    用java实现简易外卖订餐系统,供大家参考,具体内容如下 一、使用技术 javaSE 二、实现功能 外卖订餐系统 具体要求如下: 使用选择结构,循环结构,数组的知识实现一个外卖订餐系...
    99+
    2024-04-02
  • Java实现简易学籍管理系统
    本文实例为大家分享了Java实现简易学籍管理系统的具体代码,供大家参考,具体内容如下 1、我们先来讲讲什么是泛型化编程 package 学生管理系统;   import java.u...
    99+
    2024-04-02
  • Java实现简易图书借阅系统
    在简单学习Java的基础知识点后,动手做了一个十分简陋的图书馆借阅系统,作为对所学知识的综合应用,有不足的地方希望大家多多评论,会积极进行改正。 1.先附上总的效果 一开始的登录界面...
    99+
    2024-04-02
  • python实现简易图书管理系统
    本文实例为大家分享了python实现简易图书管理系统的具体代码,供大家参考,具体内容如下 一、设计需求 1.添加书籍2.查询数据3.借书 存储方式 ,用excel保存到硬盘上或者用....
    99+
    2024-04-02
  • Python实现简易超市管理系统
    目录一:购物车管理功能二:用户管理功能三:AI客服对话一:购物车管理功能 1.添加商品(不重复添加)、 2.删除商品(购物车中有的才能删除)、 3.查看购物车 4.退出系统 产品列表...
    99+
    2024-04-02
  • jQuery怎么实现简易商城系统
    本篇内容主要讲解“jQuery怎么实现简易商城系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jQuery怎么实现简易商城系统”吧!一.效果图二.body<body> &...
    99+
    2023-07-02
  • GoLang抽奖系统简易实现流程
    目录业务难点技术选项抽奖活动需求分析微信摇一摇得抽奖活动微博抢红包抽奖大转盘抽奖活动总结业务难点 设计一个抽奖系统,这个系统并不是具体化,是抽象化,具有以下的几个难点: 1、抽奖业务...
    99+
    2022-12-15
    GoLang抽奖系统 Go抽奖
  • Java实现简易学生管理系统
    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 1.学生管理系统(控制台界面实现) //学生类,继承Serializeable接口,将其序列化写入文...
    99+
    2024-04-02
  • C语言实现简易订餐系统
    本文实例为大家分享了C语言实现简易订餐系统的具体代码,供大家参考,具体内容如下 主要功能: (1)菜单维护(餐厅管理人员使用)采用顺序表实现 1、添加新菜 2、删除菜品 3、修改菜品...
    99+
    2024-04-02
  • Java怎么实现简易购物系统
    这篇文章主要介绍了Java怎么实现简易购物系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么实现简易购物系统文章都会有所收获,下面我们一起来看看吧。用基本语句去实现一个购物系统package&nbs...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作