javascript实现弹幕墙效果


Posted in Javascript onNovember 28, 2019

刚开始入门前端,想仿照FreeCodeCamp中的一个项目制作简单的弹幕墙。

步骤如下:

1、编写HTML代码:

创建一个弹幕显示墙,以及两个按钮,分别为“发送”和“清屏”,并在文本框中设置placeholder为“说点什么吧?”以提示用户在此输入弹幕信息。

<body>
    <div class="con">      
      <div id="screen">
        <div class="dm_show">
          <!-- <div>text message</div> -->
        </div>
      </div>
      <div class="edit">
        <p>
          <input placeholder="说点什么吧?" class="content" type="text" />
        </p>
        <p>
          <input type="button" class="send" value="发送" />
          <input type="button" class="clear" value="清屏" />
        </p>
      </div>   
    </div>
  </body>

2、设置各标签的CSS样式:

<style>
      .con {
        background-color: floralwhite;
        padding: 40px 80px 80px;
      }
      #screen {
        background-color: #fff;
        width: 100%;
        height: 380px;
        border: 1px solid rgb(229, 229, 229);
        font-size: 14px;
      }

      .content {
        border: 1px solid rgb(204, 204, 204);
        border-radius: 3px;
        width: 320px;
        height: 35px;
        font-size: 14px;
        margin-top: 30px;

      }

      .send {
        border: 1px solid rgb(230, 80, 30);
        color: rgb(230, 80, 0);
        border-radius: 3px;
        text-align: center;
        padding: 0;
        height: 35px;
        line-height: 35px;
        font-size: 14px;
        width: 159px;
        background-color: white;
      }

      .clear {
        border: 1px solid;
        color: darkgray;
        border-radius: 3px;
        text-align: center;
        padding: 0;
        height: 35px;
        line-height: 35px;
        font-size: 14px;
        width: 159px;
        background-color: white;
      }

      .edit {
        margin: 20px;
        text-align: center;
      }

      .text {
        position: absolute;
      }
      *{
        margin: 0;
        padding: 0;
      }

      .dm_show{
        margin: 30px;
      }
</style>

CSS代码完成后效果如下:

完成后的效果如下:

javascript实现弹幕墙效果

3、编写JavaScript代码,添加按钮点击事件

<script type="text/javascript" src="../jquery-easyui-1.3.5/jquery.min.js"></script>
<script>
      $(function() {
        //设置“发送”按钮点击事件,将弹幕体显示在弹幕墙上
        $('.send').click(function() {
          //获取文本输入框的内容
          var val = $('.content').val();
          //将文本框的内容赋值给val后,将文本框的内容清除,以便用户下一次输入
          $('.content').val('');
          //将文本框内容用div包裹起来,便于后续处理
          var $content = $('<div class="text">' + val + '</div>');
          //获取弹幕墙对象
          $screen = $(document.getElementById("screen"));
          //设置弹幕体出现时的上边距,为任意值
          var top = Math.random() * $screen.height()+40;
          //设置弹幕体的上边距和左边距
          $content.css({
            top: top + "px",
            left: 80
          });
          //将弹幕体添加到弹幕墙中
          $('.dm_show').append($content);
          //弹幕体从左端移动到最右侧,时间为8秒,然后直接删除该元素
          $content.animate({
            left: $screen.width()+80-$content.width()
          }, 8000, function() {
            $(this).remove();
          });
        });
        //设置“清屏”点击事件,清除弹幕墙中的所有内容
        $('.clear').click(function() {
          $('.dm_show').empty();
        });
      });
</script>

最终效果如下:

javascript实现弹幕墙效果

至此,一个简易的弹幕墙就完成了,因本人经验有限,所以弹幕墙还比较粗糙,还请各位批评指正。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 Javascript
List the Codec Files on a Computer
Jun 18 Javascript
js 深拷贝函数
Dec 04 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
Mar 14 Javascript
JavaScript中使用Callback控制流程介绍
Mar 16 Javascript
利用JavaScript判断浏览器类型及版本
Aug 23 Javascript
AngularJS表单基本操作
Jan 09 Javascript
node.js调用Chrome浏览器打开链接地址的方法
May 17 Javascript
详解用webpack2搭建angular2的项目
Jun 22 Javascript
axios实现文件上传并获取进度
Mar 25 Javascript
微信小程序实现多行文字超出部分省略号显示功能
Oct 23 Javascript
vue自定义指令和动态路由实现权限控制
Aug 28 Javascript
jquery实现直播弹幕效果
Nov 28 #jQuery
jQuery实现简单弹幕效果
Nov 28 #jQuery
微信小程序事件流原理解析
Nov 27 #Javascript
JS实现简单省市二级联动
Nov 27 #Javascript
Angular value与ngValue区别详解
Nov 27 #Javascript
原生js实现二级联动菜单
Nov 27 #Javascript
微信小程序wxml列表渲染原理解析
Nov 27 #Javascript
You might like
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
Linux下php5.4启动脚本
2014/08/03 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
有关Python的22个编程技巧
2018/08/29 Python
python集合常见运算案例解析
2019/10/17 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
Pytorch to(device)用法
2020/01/08 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
前台接待员岗位职责
2014/01/02 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS