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 相关文章推荐
jquery里的each使用方法详解
Dec 22 Javascript
jQuery的12招常用技巧分享
Aug 08 Javascript
Javascript面向对象编程
Mar 18 Javascript
jQuery中DOM操作实例分析
Jan 23 Javascript
javascript父子页面通讯实例详解
Jul 17 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
Feb 14 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 Javascript
js手机号批量滚动抽奖实现代码
Apr 17 Javascript
ES6正则的扩展实例详解
Apr 25 Javascript
JS数组操作之增删改查的简单实现
Aug 21 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 jQuery
js 根据对象数组中的属性进行排序实现代码
Sep 12 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
PHP 模板高级篇总结
2006/12/21 PHP
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
js验证表单大全
2006/11/25 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
python远程登录代码
2008/04/29 Python
python文件操作整理汇总
2014/10/21 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
python和shell获取文本内容的方法
2018/06/05 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
品质主管岗位职责
2014/03/16 职场文书
倡议书格式范文
2014/04/14 职场文书
烟台的海导游词
2015/02/02 职场文书
撤诉申请怎么写
2015/05/19 职场文书
歌舞青春观后感
2015/06/10 职场文书
Nginx 常用配置
2022/05/15 Servers