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 相关文章推荐
WEB 浏览器兼容 推荐收藏
May 14 Javascript
javascript中方便增删改cookie的一个类
Oct 11 Javascript
Javascript实现滑块滑动改变值的实现代码
Apr 12 Javascript
jQuery基本过滤选择器使用介绍
Apr 18 Javascript
原生javascript实现图片滚动、延时加载功能
Jan 12 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
js原型链与继承解析(初体验)
May 09 Javascript
js在ie下打开对话窗口的方法小结
Oct 24 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 Javascript
JavaScript 中的 this 简单规则
Sep 19 Javascript
js+html5实现手机九宫格密码解锁功能
Jul 30 Javascript
Vue 请求传公共参数的操作
Jul 31 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 GD绘制24小时柱状图
2008/06/28 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
iframe 异步加载技术及性能分析
2011/07/19 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
《最可爱的人》教学反思
2014/02/14 职场文书
小学少先队活动方案
2014/02/18 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
五一促销活动总结
2014/07/01 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android
配置nginx负载均衡
2022/05/06 Servers
微信小程序实现轮播图指示器
2022/06/25 Javascript
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技