【JS案例】发射弹幕

发射弹幕

需求描述:
(文本框输入内容,点击发射按钮,内容出现在屏幕中,水平滚动,高度随机,颜色随机)

在这里插入图片描述

HTML:

    <div id="box"></div>
    <div id="trunk">
        <input type="text" id="txt" placeholder="请输入内容" maxlength="49" required>
        <button id="btn">发射弹幕</button>
    </div>

CSS:

 <style>
        body,div,ul,input,button{ margin: 0; padding: 0; }
        body{
            overflow: hidden;
            white-space: nowrap;
        }
        #box{
            width: 100%;
            height: 642px;
            background-color: rgb(255, 255, 255);
        }
        #trunk{
            width: 100%;
            height: 80px;
            background-color: rgb(24, 153, 121);
            position: relative;
            top: 0;
        }
        #txt{
            box-sizing: border-box;
            width: 700px;
            height: 50px;
            margin-top:15px;
            padding: 20px;
            border: none;
            border-radius: 30px;
            background-color: rgba(203, 234, 223, 0.9);
            font-size: 16px;
            color: rgb(90, 76, 76);
            position: absolute;
            left: 40%;
            margin-left:-350px;
            outline: none;
        }
        #btn{
            width: 160px;
            height: 50px;
            margin-top: 15px;
            border: none;
            border-radius: 30px;
            position: absolute;
            right: 20%;
            background-color: rgb(253, 255, 255);
            font-size: 16px;
            color: rgb(63, 63, 60);
            outline: none;
        }
    </style>

JavaScript:

	var box = document.getElementById('box');
        var btn = document.getElementById('btn');
        var txt = document.getElementById('txt');
        var timer;
        btn.onclick = function() {
            if(timer){
                clearInterval(timer);
            }
            var span = document.createElement('span');
            var top = parseInt(Math.random()*700)-100;
            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 = '2000px';
            span.innerHTML = txt.value;
            
            box.appendChild(span);
            txt.value = '';
            
	    timer = setInterval(function(){
                var spanArray = box.children;
                for(var i = 0 ; i < spanArray.length ; i++) {
                    spanArray[i].style.left = parseInt(spanArray[i].style.left) - 2 +'px';
                    if( parseInt(spanArray[i].style.left) < -500 ) {
                        spanArray[i].style.left = 2000 + 'px';
                    }
                }
            },20)
	
        
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用JavaScript实现视频弹幕特效的基本步骤: 1. 获取视频播放器的DOM元素和弹幕容器的DOM元素 2. 定义弹幕内容的数据结构,例如: ``` var comments = [ { text: "第一条弹幕", time: 5 }, { text: "第二条弹幕", time: 10 }, { text: "第三条弹幕", time: 15 } ]; ``` 其中,text表示弹幕的文本内容,time表示弹幕出现的时间(单位为秒)。 3. 监听视频播放器的timeupdate事件,在每一帧视频播放时判断当前时间是否有对应的弹幕需要显示,如果有则创建一个弹幕元素,添加到弹幕容器中,并设置弹幕的样式和动画效果。 4. 为弹幕元素添加点击事件,当用户点击弹幕时可以进行相应的操作,例如暂停视频播放、跳转到对应的时间点等。 下面是一个简单的示例代码: ```javascript var video = document.getElementById("myVideo"); var commentContainer = document.getElementById("commentContainer"); var comments = [ { text: "第一条弹幕", time: 5 }, { text: "第二条弹幕", time: 10 }, { text: "第三条弹幕", time: 15 } ]; video.addEventListener("timeupdate", function() { var currentTime = video.currentTime; for (var i = 0; i < comments.length; i++) { if (currentTime >= comments[i].time) { var commentElement = document.createElement("div"); commentElement.className = "comment"; commentElement.textContent = comments[i].text; commentContainer.appendChild(commentElement); // 设置弹幕的样式和动画效果 // ... } } }); commentContainer.addEventListener("click", function(event) { // 处理弹幕点击事件 // ... }); ``` 需要注意的是,弹幕的样式和动画效果可以使用CSS来实现,例如: ```css .comment { position: absolute; top: 50%; left: 100%; transform: translate(0, -50%); white-space: nowrap; animation: move 10s linear; } @keyframes move { 0% { transform: translate(100%, -50%); } 100% { transform: translate(-100%, -50%); } } ``` 这里使用了position属性来设置弹幕的位置,animation属性来设置弹幕的动画效果。具体的样式和动画效果可以根据需要进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值