在 Jquery 中创建随机下落物体

2023-11-21

我试图让div从上到下下降。 这是我尝试过的代码,但它不能满足我的需求。我想在准备好后生成 20 div,然后如何使该 20 div 持续从上到下一致地下降。在 jquery 中是否可以做到这一点?http://jsfiddle.net/MzVFA/这是代码

  function fallingSnow() {

        var snowflake = $('<div class="snowflakes"></div>');
        $('#snowZone').prepend(snowflake);
        snowX = Math.floor(Math.random() * $('#site').width());
        snowSpd = Math.floor(Math.random() + 5000);

        snowflake.css({'left':snowX+'px'});
        snowflake.animate({
            top: "500px",
            opacity : "0",

        }, snowSpd, function(){
            $(this).remove();
            fallingSnow();
        });

    }
    var timer = Math.floor(Math.random() +1000);

    window.setInterval(function(){
        fallingSnow();
    }, timer);

非常感谢您的帮助。

Thanks


不确定这是否是您想要的。

我正在制作 20 片雪花的动画,请等到动画完成对于他们所有人,然后重新开始。

jsfiddle

function fallingSnow() {

    var $snowflakes = $(), qt = 20;

    for (var i = 0; i < qt; ++i) {
        var $snowflake = $('<div class="snowflakes"></div>');
        $snowflake.css({
            'left': (Math.random() * $('#site').width()) + 'px',
            'top': (- Math.random() * $('#site').height()) + 'px'
        });
        // add this snowflake to the set of snowflakes
        $snowflakes = $snowflakes.add($snowflake);
    }
    $('#snowZone').prepend($snowflakes);

    $snowflakes.animate({
        top: "500px",
        opacity : "0",
    }, Math.random() + 5000, function(){
        $(this).remove();
        // run again when all 20 snowflakes hit the floor
        if (--qt < 1) {
            fallingSnow();
        }
    });
}
fallingSnow();

Update

此版本仅创建 20 个 div 一次,并一次又一次地为它们设置动画。

jsFiddle

    function fallingSnow() {
        var $snowflakes = $(),
            createSnowflakes = function () {
                var qt = 20;
                for (var i = 0; i < qt; ++i) {
                    var $snowflake = $('<div class="snowflakes"></div>');
                    $snowflake.css({
                        'left': (Math.random() * $('#site').width()) + 'px',
                        'top': (- Math.random() * $('#site').height()) + 'px'
                    });
                    // add this snowflake to the set of snowflakes
                    $snowflakes = $snowflakes.add($snowflake);
                }
                $('#snowZone').prepend($snowflakes);
            },

            runSnowStorm = function() {
                $snowflakes.each(function() {

                    var singleAnimation = function($flake) {
                        $flake.animate({
                            top: "500px",
                            opacity : "0",
                        }, Math.random() + 5000, function(){
                            // this particular snow flake has finished, restart again
                            $flake.css({
                                'top': (- Math.random() * $('#site').height()) + 'px',
                                'opacity': 1
                            });
                            singleAnimation($flake);
                        });
                    };
                    singleAnimation($(this));
                });
        };

        createSnowflakes();
        runSnowStorm();
    }
    fallingSnow();

Update2

这个初始化的是left在我看来,一旦为每个雪花完成动画,看起来就更自然了。 还改变了延迟

Math.random() + 5000

to

Math.random()*-2500 + 5000

demo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Jquery 中创建随机下落物体 的相关文章

随机推荐

  • Windows 是否有集成的内置 C/C++ 编译器包?

    我希望能够在 Windows 环境下编译 C 和 C 代码 而无需使用 IDE 只需使用 Windows 命令提示符 cmd exe 即可 我来自 Linux 您可以在其中安装gcc只需在终端中使用命令即可打包 sudo apt insta
  • 如何禁用动态频率缩放?

    我想做一些微基准测试 并尝试做正确的事情 不幸的是 动态频率缩放使得基准测试非常不可靠 有没有办法以编程方式 C Windows 查明是否启用了动态频率缩放 如果 可以在程序中禁用它吗 我尝试在实际基准测试发生之前使用 100 CPU 的预
  • 无论线条大小如何保持线型间距恒定

    当尺寸不同时 我一直尝试在 ggplot2 或网格中绘制线段之间具有相等间距的线 但是我没有成功 所以我请求你的帮助 在下面的示例中 如何在线条尺寸不同的情况下保持线段之间的绝对间距相等 我想避免定制makeContent myclass我
  • 如何在smarty模板中解析/解码JSON对象?

    我的模板文件中有以下代码 foreach from items item entry pre entry gt nb persons print r pre foreach 输出是 json 字符串 ip 12 12 12 12 date
  • Laravel 喜欢 Eloquent 的数组值吗?

    如何进行 Like 查询并搜索多个值 searchWords explode Input get search 然后我得到了用于搜索的一组单词 我怎样才能通过它 pages Page where content LIKE singleWor
  • 自动批准评论插件中的所有评论

    有没有办法自动批准并默认公开所有评论插件的评论 另外 我真的需要知道这些评论是在什么基础上进行审核的 在某些页面上 它们默认是公开的 而在其他页面上 它们最终会进入审核队列 更新 0 我删除了脸书 管理员 审核 UI 消失 但审核仍然有效
  • 使用 Zend Framework 安全地运行 Cron 作业

    我看过很多关于 cron 和 ZF 的帖子 但大多数解决方案都让工作可以由公众触发运行 如果你想设置一个只能由 cron 运行的操作怎么办 不是由某个匿名用户也不是由必须登录的人 我使用的解决方案涉及将一个文件放在我的 Web 根目录之外
  • 在 Javascript 中播种随机数生成器

    是否可以为随机数生成器提供种子 Math random 在 JavaScript 中 不 不可能播种Math random The ECMAScript 规范故意在这个主题上含糊其辞 不提供播种方式 也不要求浏览器使用相同的算法 所以这样的
  • 提交前获取应用程序的 iTunes 链接

    我在另一篇文章中读到 您可以在没有二进制文件的情况下提交应用程序 但根据我所看到的 这不再可能 看来没有二进制文件就无法提交 并且二进制文件是通过应用程序加载器提交的 在提交二进制文件之前 还有其他已知的方法可以获取指向我的应用程序的 it
  • 我不明白 sigma 表示法和 for 循环

    我有一本书说 并说这相当于说 for i 1 i lt N i Sum i 它进一步说利用这个简单的公式 因为 最大值 最小值 1 它说将其更改为 C 代码将是 for k j k lt 1 k Sum k 但是 我真的无法理解这一点 谁能
  • 为什么浏览器无法发送gzip请求?

    如果网络服务器可以发送 gzip 响应 为什么浏览器不能发送 gzip 请求 客户端和服务器必须就如何通信达成一致 其中一部分是通信是否可以被压缩 HTTP 被设计为请求 响应模型 最初的创建几乎可以肯定地设想总是有小请求和潜在的大响应 压
  • 如何在一个屏幕而不是整个应用程序中处理退出应用程序 - React Native?

    我有一些问题返回处理程序 问题是 运行应用程序并转到 注册 屏幕并触摸手机背面时 他们将运行该功能并显示警报进行确认 但现在当我转到任何其他屏幕并触摸背面时 他们将需要每次返回时就返回上一个屏幕 BackHandler exitApp 运行
  • 将断点保存到文件

    调试 Python 代码时 我从命令行通过 ipdb 运行脚本 并设置了多个断点 然后我对一个或多个模块进行一些更改 然后重新运行 但是 如果我只是使用运行模块不要重新加载 为了确保它们确实如此 我可以完全存在并重新启动Python 但随后
  • 如何获得英文的 boost::system::error_code::message ?

    在具有本地化 UI 的 Win7 上 error code message 返回非英语消息 据我所知 在 Boost 1 54 中 对于system error category 上面的函数归结为以下 WinAPI 调用 DWORD ret
  • 如何使用 ExecutorService 等待所有线程完成?

    我需要一次执行 4 个任务 如下所示 ExecutorService taskExecutor Executors newFixedThreadPool 4 while taskExecutor execute new MyTask wai
  • 如何在 macOS 或 OS X 上安装 pip?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 昨天我花了一整天的时间寻找安装的明确答案pip Python 的包管理器 我找不到好的解决办法 我该如何安装它 在 Linux 或 MacOS 上 python
  • 在 Laravel Homestead 上使用 SSL

    我正在使用 Laravel Homestead 它运行良好 现在我想在我的一个网站上实施 HTTPS 我发现要实现这一点 你只需要添加ssl true进入 Homestead yaml 然后运行 vagrant reload provisi
  • 使用 pywin32 控制 Adob​​e Acrobat 时出现“未实现”异常

    我使用 pywin32 在 python 中编写了一个脚本 将 pdf 文件保存为文本 直到最近都工作正常 我在 Excel 中使用类似的方法 代码如下 def pdf2Txt self pdf fileformat com adobe a
  • 如何重写javascript中的eval函数?

    例如 function var proxied window eval window eval function return proxied apply this arguments 但这段代码不起作用 eval是魔法 与 真实 函数不同
  • 在 Jquery 中创建随机下落物体

    我试图让div从上到下下降 这是我尝试过的代码 但它不能满足我的需求 我想在准备好后生成 20 div 然后如何使该 20 div 持续从上到下一致地下降 在 jquery 中是否可以做到这一点 http jsfiddle net MzVF