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获取div高度的代码
Aug 09 Javascript
jquery中dom操作和事件的实例学习-表单验证
Nov 30 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
May 08 Javascript
Flexigrid在IE下不显示数据的有效处理方法
Sep 04 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
Aug 28 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
vue项目部署上线遇到的问题及解决方法
Jun 10 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
Jan 27 jQuery
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
turn.js异步加载实现翻书效果
Jul 25 Javascript
js实现扫雷源代码
Nov 27 Javascript
vue css 相对路径导入问题级踩坑记录
Jun 05 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
php微信公众号js-sdk开发应用
2016/11/28 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
封装属于自己的JS组件
2016/01/27 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
详解Python的Lambda函数与排序
2016/10/25 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
python 魔法函数实例及解析
2019/09/25 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
理工大学毕业生自荐信范文
2014/02/22 职场文书
仓库文员岗位职责
2014/04/06 职场文书
差生评语大全
2014/05/04 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
感谢信模板大全
2015/01/23 职场文书
军训决心书范文
2015/09/22 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
Nginx配置之禁止指定IP访问
2022/05/02 Servers