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 相关文章推荐
学习YUI.Ext第五日--做拖放Darg&amp;Drop
Mar 10 Javascript
javascript firefox兼容ie的dom方法脚本
May 18 Javascript
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
基于jQuery的图片剪切插件
Aug 03 Javascript
JS保留两位小数 四舍五入函数的小例子
Nov 20 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
js提交form表单,并传递参数的实现方法
May 25 Javascript
Bootstrap Validator 表单验证
Jul 25 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 Javascript
利用js实现前后台传送Json的示例代码
Mar 29 Javascript
vue项目中添加单元测试的方法
Jul 21 Javascript
layui form表单提交之后重新加载数据表格的方法
Sep 11 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实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
js对数字的格式化使用说明
2011/01/12 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
Vue 换肤的示例实践
2018/01/23 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
python简单实现基数排序算法
2015/05/16 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python实现LRU热点缓存及原理
2019/10/29 Python
Python3常用内置方法代码实例
2019/11/18 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
浅谈python锁与死锁问题
2020/08/14 Python
Python类型转换的魔术方法详解
2020/12/23 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
大学生个人简历自我评价
2013/11/16 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
入股协议书范本
2014/04/14 职场文书
五一促销活动总结
2014/07/01 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
党员自我剖析材料
2014/08/31 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书