js实现弹幕效果

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>js实现弹幕效果</title>
    <style>
        #play {
            width: 600px;
            height: 500px;
            background-color: #000;
        }

        /*方便js获取高度*/
        #danmu{
            width:600px;
            height:500px;
            background-color:#fff;
            z-index:9999;
            background-color: rgba(0, 1, 0, 0.1);
        }

        #textStyle {
            position: absolute;
            font-size: 24px;
            color: #ffffff;
        }
    </style>
</head>
<body>

<div id="play">
    <div id="danmu"></div>
</div>

<input type="text" id="text" value="这是弹幕..."/>
<input type="button" value="发送" onclick="danmu()"/>

<script src="jquery-3.1.0.min.js"></script>
<script>
    var si; // 初始化定义定时器变量
    function danmu() {
        // 每次执行弹幕函数的前清除一次定时器
        clearInterval(si);

        var text = $(‘#text‘);
        var danmu = $(‘#danmu‘);
        var textStyle = ‘<span id="textStyle">‘ + text.val() + ‘</span>‘;

        danmu.get(0).innerHTML = textStyle;

        var textTop = Math.round(Math.random()*danmu.height()) + ‘px‘;
        var textLeft = danmu.width() + ‘px‘;

        var textStyleObj = $(‘#textStyle‘);
        textStyleObj.css({
            ‘left‘: textLeft,
            ‘top‘: textTop
        });

        var x = parseInt(textStyleObj.css(‘left‘));
        //console.log(x);

        //textMove(x);

        var animateLeft = 600;
        si = setInterval(function () {
            if(animateLeft < -parseInt(textStyleObj.width())) {
                // 停止定时器,清空弹幕
                clearInterval(si);
                danmu.text(‘‘);
                //console.log(‘清除定时器‘);
            }else {
                // 弹幕的left值减一
                animateLeft--;
                //console.log(animateLeft);
            }

            textStyleObj.css(‘left‘, animateLeft + ‘px‘);
        }, 10);
    }

</script>

</body>
</html>
时间: 2024-11-13 07:20:26

js实现弹幕效果的相关文章

js实现弹幕(原创)

弹幕是一个很常见的功能,下面是本人封装的一个小小的实现方案,存在不足之处可以提出来或自由改进. 直接上代码:复制可运行 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name=

使用Swoole中的WebSocket快速实现弹幕效果

WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端. 接下来,如果是单纯想学习WebSocket的使用方式的话,可以使用DanmuPlayer项目的源码,是一款Html5弹幕视频播放器插件,也可以执行写一个弹幕插件.我比较懒,直接使用了现成的插件,按照文档配置好后,可以在本地单机使用弹幕效果了.由于此次是单纯简单入门Swoole,并没有做复杂的代码封装. 1.直接在DanmuPlayer下,demo文

js拖拽效果实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>    <meta

弹幕效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>仿弹幕效果</title> <style> *{margin: 0;padding: 0;list-style: none;} html,body{width: 100%;height: 100%;} body{background-color:

Android:简单的弹幕效果达到

首先,效果图.分类似至360检测到的骚扰电话页面: 布局非常easy,上面是一个RelativeLayout,以下一个Button. 功能: (1)弹幕生成后自己主动从右側往左側滚动(TranslateAnimation).弹幕消失后立马被移除. (2)弹幕位置随机出现.而且不反复(防止文字重叠). (3)字体大小在一定范围内随机改变.字体颜色也能够设置. (4)自己定义先减速,后加速的Interpolator,弹幕加速进入.减速停留.然后加速出去. 1.Activity代码: /** * 简易

图片切换特效(1):原生JS图片切换效果

转自:http://www.codefans.net/jscss/code/4699.shtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

又一枚精彩的弹幕效果jQuery实现

精彩的弹幕效果分享给大家,具有一定的参考价值,感兴趣的朋友可以尝试制作弹幕,具体内容如下 简易弹幕效果:将发布的内容随机显示在弹幕右侧,逐渐左移最后消失. 涉及知识点:val().random().height().css().append().remove()等,主要是元素的操作 html代码: ? 1 2 3 4 5 6 7 8 9 <a href="#">弹幕技术</a>   <div class="mask">     &

JS图片切换效果

源地址:http://www.codefans.net/jscss/code/4699.shtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&g

js实现手风琴效果

之前在慕课网上有练习手风琴效果,但是老师使用jquery简简单单的两三行实现了,今天自己用js练习一下效果 <div id="divbox"> <ul> <li class="pic1"><a href="javascript:;">床头明月光</a></li> <li class="pic2"><a href="javascr