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 相关文章推荐
js函数般调用正则
Apr 08 Javascript
JavaScript设置FieldSet展开与收缩
May 15 Javascript
干货分享:让你分分钟学会javascript闭包
Dec 25 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 Javascript
vue awesome swiper异步加载数据出现的bug问题
Jul 03 Javascript
JS实现的合并两个有序链表算法示例
Feb 25 Javascript
8 个有用的JS技巧(推荐)
Jul 03 Javascript
微信小程序错误this.setData报错及解决过程
Sep 18 Javascript
js仿360开机效果
Dec 26 Javascript
JavaScript图片旋转效果实现方法详解
Jun 28 Javascript
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
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
ajax php 实现写入数据库
2009/09/02 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
php接口隔离原则实例分析
2019/11/11 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
详解javascript中的Error对象
2019/04/25 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Python实现的矩阵类实例
2017/08/22 Python
django项目搭建与Session使用详解
2018/10/10 Python
python实现人机猜拳小游戏
2020/02/03 Python
keras之权重初始化方式
2020/05/21 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
群众路线党课主持词
2014/04/01 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
小学社团活动总结
2014/06/27 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
小升初自荐信范文
2015/03/05 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
Ajax实现三级联动效果
2021/10/05 Javascript
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers