弹幕功能的实现(jQuery)

本文介绍了一种使用jQuery库实现实时弹幕效果的方法。通过解析HTML代码和JavaScript脚本,展示了如何创建动态弹幕元素,设置随机颜色和位置,并在用户输入内容后触发弹幕显示。此外,还实现了文本框清空和动画结束后元素移除的功能。

弹幕功能的实现(jQuery)

在这里插入代码片<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>    
</head>
<body>
<div class="container">
    <div class="video">
        <video width="1000" height="600" src="images/video/1.mp4" controls></video>
    </div>
    <div class="content">
        <input type="button" value="发射">
        <input type="text">
    </div>
</div>
<!--<script src="jquery-1.12.4.js"></script>-->
<!--使用网络上的资源.-->
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
    $(function () {
        /*1.发射的时候  获取输入内容 检验是否为空*/
        /*2.创建一个元素*/
        /*2.1 内容   输入内容*/
        /*2.2 颜色   获取一个随机的颜色*/
        /*2.3 top   获取一个随机的top   0-视频高度 */
        /*2.4 定位 right 0 宽度 字体大小 ...*/

        var $video = $('.video');

        var getRandomColor = function () {
            /*0-255*/
            var r = Math.floor(256 * Math.random());
            var g = Math.floor(256 * Math.random());
            var b = Math.floor(256 * Math.random());
            return 'rgb(' + r + ',' + g + ',' + b + ')';
        }

        var getRandomTop = function () {
            /*height() jquery方法  0-视频高度 */
            var videoHeight = $video.height();
            return videoHeight * Math.random();
        }

        /*点击发送*/
        $('[type="button"]').click(function () {
            /*val() jquery方法 获取文本输入框的值*/
            //var text = $('[type="text"]').val().trim();
            /* jquery 工具函数  */
            var text = $.trim($('[type="text"]').val());

            /*没有输入内容就停止执行*/
            if (!text) return false;
            /*弹幕*/
            $('<span></span>').text(text).css({
                'position':'absolute',
                'width':200,
                'height':30,
                'font-size':'20px',
                'font-weight':'bold',
                'right':-200,
                'color':getRandomColor(),
                'top':getRandomTop()
            }).animate({'right':1000},10000,'linear',function () {
                /*动画结束之后需要删除  自杀*/
                $(this).remove();
            }).appendTo($video);
            /*清空输入框*/
            $('[type="text"]').val('');
        });
        /*回车发送*/
        $('[type="text"]').keyup(function (event) {
            //console.log(event.keyCode);
            if(event.keyCode == 13){
                /*触发点击事件  执行发射操作*/
                $('[type="button"]').click();
            }
        });



    })
</script>
<style>
    * {
        margin: 0;
        padding: 0;
    }

    .container {
        width: 1000px;
        margin: 0 auto;
    }

    .container .video {
        width: 1000px;
        height: 600px;
        background: #000;
        position: relative;
        overflow: hidden;
    }

    .container .content {
        background: #333;
        height: 30px;
        padding: 10px;
    }

    .container .content input {
        float: right;
        border: none;
        outline: none;
        padding: 0 15px;
        height: 30px;
        line-height: 30px;
    }
</style>
</body>
</html>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值