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获取radio值(单选组radio)
Oct 16 Javascript
jQuery获得document和window对象宽度和高度的方法
Mar 25 Javascript
JS上传组件FileUpload自定义模板的使用方法
May 10 Javascript
vuex实现简易计数器
Oct 27 Javascript
微信小程序 rich-text的使用方法
Aug 04 Javascript
探索webpack模块及webpack3新特性
Sep 18 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 jQuery
vue中路由验证和相应拦截的使用详解
Dec 13 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
Dec 28 Javascript
vue-cli项目修改文件热重载失效的解决方法
Sep 19 Javascript
如何为你的JS项目添加智能提示与类型检查详解
Mar 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
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
javascript this用法小结
2008/12/19 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
jqTransform美化表单
2015/10/10 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
2018/02/18 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
个人简历中的自我评价范例
2013/10/29 职场文书
小学安全教育材料
2014/02/17 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
贫困证明书范文
2015/06/16 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
python实现三阶魔方还原的示例代码
2021/04/28 Python