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 解析多维的Json数据格式
Nov 02 Javascript
JQuery中each()的使用方法说明
Aug 19 Javascript
12种不宜使用的Javascript语法整理
Nov 04 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
浅析JSONP技术原理及实现
Jun 08 Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 Javascript
Bootstrap3多级下拉菜单
Feb 24 Javascript
vue使用axios实现文件上传进度的实时更新详解
Dec 20 Javascript
vue基本使用--refs获取组件或元素的实例
Nov 07 Javascript
Vue开发环境跨域访问问题
Jan 22 Javascript
React中Ref 的使用方法详解
Apr 28 Javascript
JavaScript分页组件使用方法详解
Jul 26 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迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
js常见表单应用技巧
2008/01/09 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
python对html代码进行escape编码的方法
2015/05/04 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
TensorFlow变量管理详解
2018/03/10 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
python类中super() 的使用解析
2019/12/19 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
用Python开发app后端有优势吗
2020/06/29 Python
Django如何实现防止XSS攻击
2020/10/13 Python
Django websocket原理及功能实现代码
2020/11/14 Python
小学生新年寄语
2014/04/03 职场文书
2014年减负工作总结
2014/12/10 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
农业项目合作意向书
2015/05/08 职场文书