来个弹幕吧!

作者: 小纸人儿 | 来源:发表于2016-09-18 21:24 被阅读110次

我的第一个小特效哦

写每一个效果前都得先构思,先有个大概布局,再开始埋头苦敲,这样才能快速解决问题。。。
1、写弹幕时最好把所有的弹幕都放在“幕布”上,而不是直接放在内容上;
2、获取随机字体颜色、随机大小

//获取随机RGB值
function randomColor(){
    return "rgba("+ Math.round(Math.random() * 255) + "," + Math.round(Math.random() * 255) + "," + Math.round(Math.random() * 255) + ",1)";            
 }
//获取14-30随机数
function runRandom(){
    return Math.floor( Math.random()*17 ) + 14;
}

3、布局

<div id="box">
    <img src="img/op.jpg"/>
    <div id="list">
        <p id="p1"></p>
    </div>
    <div id="bottom">
        <input type="text" id="text" placeholder="请输入弹幕" />
        <span id="btn">提交</span>
        <a id="close" href="javascript:;">隐藏弹幕</a>
    </div>
</div>
<style type="text/css">
    *{
        margin:0;
        padding:0;
    }
    #box{
        width: 900px;
        height: 700px;
        border: 2px solid yellowgreen;
        position: relative;
        margin:100px auto;
    }
    #box img{
        width: 900px;
        height: 700px;
        z-index: -1;
    }
    #bottom{
        width: 440px;
        position: absolute;
        bottom: 10px;
        left: 50%;
        margin-left:-220px;
        font-family: "微软雅黑";
        font-size: 14px;
        display: none;
    }
    #text{
        width: 300px;
        height: 30px;
        border:2px solid #FF0000;
        float: left;
    }
    #btn{
        display: block;
        float: left;
        width: 50px;
        height: 32px;
        color:#fff;
        cursor: pointer;
        text-align: center;
        line-height: 32px;
        background: #FF0000;
        border:1px solid #FF0000;
    }
    a{
        text-decoration: none;
        text-align: center;
        display: block;
        float: right;
        background: #FF0000;
        line-height: 32px;
        width: 80px;
        height: 32px;
        color:#fff;
        border:1px solid #FF0000;
    }
    #list{
        width: 100%;
        height: 300px;
        position: absolute;
        top:0;
        left: 0;
        overflow: hidden;
    }
    p{
        color:#FF0000;
        position: absolute;
        top: 0;
        right:-304px;
    }
</style>

4、js代码段

var box = document.getElementById("box");
var list = document.getElementById("list");
var p1 = document.getElementById("p1");
var Text = document.getElementById("text");
var btn = document.getElementById("btn");
var close = document.getElementById("close");
var bottom = document.getElementById("bottom");
box.onmouseover = function(){
    bottom.style.display = 'block';
};
box.onmouseout = function(){
    bottom.style.display = 'none';
};          
//点击回车发送弹幕
Text.onfocus = function(){
    document.onkeydown = function(ev){
        ev = ev || event;
        if( ev.keyCode == 13 ){
            fn();
        }
    }           
}
//点击按钮发送弹幕
btn.onclick = fn;
//弹幕移动
function fn(){
    var val = Text.value;
    var op = document.createElement('p');
    op.innerHTML =  val ;
    list.appendChild( op );
    op.style.marginTop = Math.floor( Math.random()*200 ) + 'px';
    op.style.color = randomColor();
    op.style.fontSize = ( Math.floor( Math.random()*20) +10 ) + 'px' ;
    op.style.whiteSpace = 'nowrap';
    op.num = 880;
    var left = op.offsetLeft;
    var timer = setInterval(function(){
        op.num --;
        if( op.offsetLeft <= -op.offsetWidth ){
            clearInterval( timer );
            list.removeChild( op );
        }
        op.style.left = op.num + 'px';
    },runRandom());     
    Text.value = '';
}
//获取随机RGB值
function randomColor(){
    return "rgba("+ Math.round(Math.random() * 255) + "," + Math.round(Math.random() * 255) + "," + Math.round(Math.random() * 255) + ",1)";     
 }
//获取14-30随机数
function runRandom(){
    return Math.floor( Math.random()*17 ) + 14;
}
//隐藏弹幕  显示弹幕
close.onclick = function(){
    if(close.onOff){
        close.innerHTML = '显示弹幕';
        list.style.display = 'none';
    }else{
        close.innerHTML = '隐藏弹幕';
        list.style.display = 'block';
    }
        close.onOff = !close.onOff;
}

5、效果图;

Paste_Image.png

相关文章

  • 来个弹幕吧!

    我的第一个小特效哦 写每一个效果前都得先构思,先有个大概布局,再开始埋头苦敲,这样才能快速解决问题。。。1、写弹幕...

  • “弹幕”怎么说?

    每天都在发弹幕的我们,知道弹幕怎么说嘛?一起来了解一下吧! 【弹幕】 bullet screen弹幕danmu b...

  • 来个好评吧

    来个好评吧:很多人网购以及订餐买票等等,网购成功之后,商家是等着你评价的,特别是好评,确实是店铺所求的:“大家说好...

  • 来个小结吧

    高二上学期转眼一个月了,转过头来似乎就在前几天儿子刚刚进入高中。兴高采烈参加各种社团选拔,可再往后看我们高中生家长...

  • 来个总结吧

    “时光荏苒,岁月如梭”,每年都是这句话,但是相信他是我们大部分人都不愿提及的话语之一,因为时光就是头上的白发,岁月...

  • 来个橘子吃吧!

    来自于《我不是药神》的感谢 一个喜剧却带给人们的都是泪点。 老吕忍受着病痛的折磨那一次次的换药到最后无钱再次治疗自...

  • 来个南瓜派吧

    学了一段时间素描,对于零基础的我感觉有点乏,回到简单的彩铅,感觉造型简单,却是有趣有味,哈哈,来点有滋味的尝尝吧!

  • 来个熊抱吧~

    过去的一周里,我经历了一次比较严重的复发。其实我自己也不能确定那到底是复发,还是疾病遵循了“该来的迟早会来”的规律...

  • 开篇来个背景吧

    我这个弟弟,小名汪洋,最大的特点就是没有特点。实在没啥特点。 说懒吧,也没有懒到饿了不知道转转脖子上的饼那种,说笨...

  • 秋季~来个雪糕吧

    秋天来了,冬天还会远吗? 一直以来我都觉得自己对秋天没什么感觉,似乎生于广东,四季如夏的感觉,秋季树叶...

网友评论

    本文标题:来个弹幕吧!

    本文链接:https://www.haomeiwen.com/subject/tfjgettx.html