当前位置:首页 > jquery

jquery 弹幕

2026-04-08 13:46:47jquery

jQuery 弹幕实现方法

使用 jQuery 实现弹幕功能可以通过动态创建元素并控制其动画效果来完成。以下是具体实现步骤:

HTML 结构

<div id="danmu-container" style="position: relative; width: 800px; height: 400px; overflow: hidden; border: 1px solid #000;"></div>
<input type="text" id="danmu-input" placeholder="输入弹幕内容">
<button id="send-danmu">发送弹幕</button>

CSS 样式

jquery 弹幕

.danmu-item {
    position: absolute;
    white-space: nowrap;
    color: #fff;
    text-shadow: 1px 1px 2px #000;
    font-size: 20px;
    animation: danmuMove linear;
}

jQuery 代码

$(function() {
    // 发送弹幕
    $('#send-danmu').click(function() {
        var text = $('#danmu-input').val().trim();
        if(text) {
            createDanmu(text);
            $('#danmu-input').val('');
        }
    });

    // 回车发送
    $('#danmu-input').keypress(function(e) {
        if(e.which == 13) {
            $('#send-danmu').click();
        }
    });

    // 创建弹幕函数
    function createDanmu(text) {
        var container = $('#danmu-container');
        var height = container.height();
        var width = container.width();

        // 随机颜色和位置
        var color = '#' + Math.floor(Math.random()*16777215).toString(16);
        var top = Math.floor(Math.random() * (height - 30));

        // 创建弹幕元素
        var danmu = $('<div class="danmu-item">' + text + '</div>')
            .css({
                'color': color,
                'top': top + 'px',
                'left': width + 'px'
            });

        // 添加到容器
        container.append(danmu);

        // 动画效果
        danmu.animate({
            left: -danmu.width()
        }, 10000, 'linear', function() {
            $(this).remove();
        });
    }

    // 自动生成示例弹幕
    setInterval(function() {
        var texts = ['666', '哈哈哈', '太棒了', '学到了', '前排'];
        var text = texts[Math.floor(Math.random() * texts.length)];
        createDanmu(text);
    }, 2000);
});

弹幕功能优化建议

速度控制 可以通过调整动画持续时间来控制弹幕速度:

jquery 弹幕

danmu.animate({
    left: -danmu.width()
}, Math.random() * 5000 + 5000, 'linear', function() {
    $(this).remove();
});

碰撞检测 实现弹幕不重叠显示:

function isOverlap(top, height) {
    var overlaps = false;
    $('.danmu-item').each(function() {
        var itemTop = parseInt($(this).css('top'));
        if(Math.abs(top - itemTop) < height) {
            overlaps = true;
            return false; // 退出循环
        }
    });
    return overlaps;
}

弹幕样式增强 添加更多样式选项:

.css({
    'color': color,
    'top': top + 'px',
    'left': width + 'px',
    'font-weight': 'bold',
    'font-size': (Math.random() * 10 + 16) + 'px'
})

注意事项

  • 弹幕容器需要设置position: relativeoverflow: hidden
  • 弹幕元素需要设置position: absolutewhite-space: nowrap
  • 动画完成后要移除DOM元素防止内存泄漏
  • 移动端需要考虑触摸事件和响应式布局

以上代码提供了基础的jQuery弹幕实现,可以根据需求进一步扩展功能如弹幕暂停、过滤、用户昵称显示等。

标签: 弹幕jquery
分享给朋友:

相关文章

jquery选择

jquery选择

jQuery选择器基础 jQuery选择器基于CSS选择器语法,用于快速定位和操作DOM元素。通过$()或jQuery()函数传入选择器字符串实现。 常见选择器类型: 元素选择器:$("p") 选…

使用jquery

使用jquery

引入jQuery库 在HTML文件中通过<script>标签引入jQuery库。可以从CDN加载,例如: <script src="https://code.jquery.com/…

jquery隐藏

jquery隐藏

jQuery 隐藏元素的方法 使用 jQuery 隐藏元素可以通过多种方式实现,以下是几种常见的方法: hide() 方法hide() 是最简单的隐藏元素方法,它会将元素的 display 属性设置…

jquery 验证

jquery 验证

jQuery 表单验证方法 jQuery 表单验证可以通过多种方式实现,常见的有原生 jQuery 代码验证和使用 jQuery 验证插件(如 jQuery Validation Plugin)。…

jquery的方法

jquery的方法

jQuery 常用方法分类 jQuery 是一个快速、简洁的 JavaScript 库,提供了大量简化 DOM 操作、事件处理、动画效果和 AJAX 交互的方法。以下是 jQuery 核心方法的分类和…

jquery引入

jquery引入

jQuery引入方法 在网页中引入jQuery库有多种方式,以下是常见的几种方法: 通过CDN引入 使用公共CDN(内容分发网络)加载jQuery,这是最常用的方式之一。以下是几个可靠的CDN源:…