滚动弹幕.

需求

1.页面上漂浮字体大小不一、颜色不一,从左向右滚动的弹幕;
2.底部中间有一个发送功能,可以发送新的弹幕;
3.底部的发送部分可以向下收起和弹出。

原理

  1. 利用Math,random设置字体大小,颜色。给文字的父标签span加上绝对定位,以及定时器,使其从左向右滚动。
  2. 给发送按钮绑定点击事件,使span.value=input.value并利用innerHTML发送至页面。
  3. 给打开和收起按钮分别绑定点击事件,改变其display状态,控制收起和弹出
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .bottom{
            position: fixed;
            bottom: 50px;
            left: 42%;
            text-align: center;
        }
        #two{
            display: none;
        }
        #one{
            position: fixed;
            bottom: 20px;
            left: 49%;
        }
        #one button{
            width: 60px;
            height:20px;
            font-size: 22px;
        }
        .box{
            height: 700px;
            width: 100%;
            position: relative;
            overflow: hidden;
        }
    </style>
</head>
<body>
<div class="box"></div>

<div class="bottom">
    <div id="two">
        <input type="text" placeholder="请输入....." id="">
        <button id="sent" >发送</button>
        <button id="close">收起</button>
    </div>
    <div id="one">
        <button id="open">^</button>
    </div>
</div>
<script>
    window.onload = function(){
    var open=document.getElementById("one")
    var two=document.getElementById("two")
    open.onclick=function(){
        two.style.display="block"
        open.style.display="none"
    }
    var close=document.getElementById("close")
    close.onclick=function(){
        two.style.display="none"
        open.style.display="block"
    }
    
    var box=document.querySelector(".box")
    var input=document.querySelector("input")
    var sent=document.querySelector("#sent")
    
        sent.onclick = function() {
            var span=document.createElement("span")
            box.appendChild(span);
            span.innerHTML=input.value
            input.value=" "
            //随机颜色
            var top = parseInt(Math.random()*800);
            var Red = parseInt(Math.random()*256);
            var Green = parseInt(Math.random()*256);
            var Blue = parseInt(Math.random()*256);
            var color = 'rgb(' + Red + ',' + Green + ',' + Blue + ')';
            top = top < 0 ? 0 : top;
	        span.style.position = 'absolute';
            span.style.top = top + 'px';
            span.style.color = color;
            span.style.left = "1270px";
            span.style.fontSize = Math.random()*30+"px"
           
            setInterval(function(){
                var spanArray = box.childNodes;
                for(var i = 0 ; i < spanArray.length ; i++) {
                    spanArray[i].style.left = parseInt(spanArray[i].style.left) -1 +'px';
                    if( parseInt(spanArray[i].style.left) < -500 ) {
                        spanArray[i].style.left = 1270 + 'px';
                    }
                }
            },10)
        }
    }
</script>
</body>
</html>

滚动弹幕

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值