jQuery制作弹幕

一:创建容器模拟直播窗口,发言框和发送按钮,并且父元素为下面子元素设置相对定位

二:想要实现弹幕的效果首先字体出现的高度和大小颜色都是随机产生的,所以说先封装一个函数来生成需要的随机数

三: 生成一个标签用来装载所输入的内容,为这个标签上设置所生成的随机高度字体大小颜色,设置绝对定位并且设置right达到从又像左的效果,设置自定义动画达成滚动效果。

四:最后为输入框设置键盘事件达到回车发送的效果

<style>
       *{
            margin: 0;
            padding: 0;
        }
        html,body{
            width: 100%;
            height: 100%;
        }
        .box{
			 width: 80%;
            height: 80%;
            border: 1px solid black;
            margin:  50px auto;
            position: relative;
            overflow: hidden;
	    }	
	 #text{
            width: 240px;
            height: 30px;
        }
      #btn{
            width: 80px;
            height: 35px;
            font-size: 14px;
        }
        #test{
	 		width: 100%;
	   		text-align: center;
}
</style>
 <script src="js/jquery.js"></script>
 <div id="box"> </div> //主要容器
 <div id="test">
        <input  type="text" id="text"/>
        <button type="button" id="btn">点击发送</button>
  </div> //发言和发送


<script>
		  var h = $("#box").css('height'); //获取容器的高度
        function random(){ //封装随机出字体颜色,弹幕距离容器的高度,字体大小
            var r = Math.floor(Math.random()*256);
            var g = Math.floor(Math.random()*256);
            var b = Math.floor(Math.random()*256);
            var a = Math.random();
            var bg = "rgba("+r+","+g+","+b+","+a+")";
            var top = Math.floor(Math.random()*parseInt(h));
            var size = Math.floor(Math.random()*20+20);
            var obj ={ 
                bg:bg,
                top:top,
                size:size
            }
            return obj;
        }

      
        $('#btn').click(function(){ //按钮的点击事件
            var text = $("#text").val(); //获取输入的值
            var obj = random(); //获取随机数对象
            if(!text) return false; //判断输入是否为空 否则不执行下面代码
            $('<span></span>').text(text) //生成span标签 并且将输入的值赋给span
                .css({
                'position':'absolute', 
                'width':200,
                'height':200,
                'font-size':obj.size+'px',
                'right':-200,
                'color':obj.bg,
                'top':obj.top
            }).animate({ //自定义动画达到滚动效果
                'right':2000
            },10000,'linear',function(){
                $(this).remove();//删除已经超出容器的span
            })
            .appendTo("#box"); //将生成的span放入容器中
            $('#text').val(''); //每发送一次就清空一次输入框
        })
	$('[type ="text"]').keyup(function(event){ //为输入框设置键盘事件
            if(event.keyCode ==13){ //13就是回车键
                $('#btn').click();
            }
        })
</script>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值