zoukankan      html  css  js  c++  java
  • 气球或者泡泡向上飘动 jQuery插件

    圣诞、元旦要来了,公司以往基本每个月至少要搞一两款手机小游戏来宣传产品,这次也不例外!!

    之前做过,按压柚子、许愿、吃柚子等等小游戏,这次是做个那种 气球向上飘动,戳破气球,随机获取奖品。如下图:

    手机端和PC端都有做,其中比较麻烦的就是随机生成各种颜色的气球,向上飘动。位置、大小、颜色都是随机的。。

    我就封装成JQuery插件。。方便调用。。

     吐槽一下,这种游戏比较适合手机端,PC端体验不好,而且根据统计PC端基本没人玩;但是没办法,老大们说PC端、移动端都要做。。那咱搞起呗!!!

    PC版:http://www.uzise.com/topic-balloon

    移动版:http://mobile.uzise.com/topic-balloon

      或者微信扫描进入:

      

     
    PS:现在只是向上飘动,可以扩展一下,比如左右飘动,向下飘动,用于气泡、下雪??等等。。抽空再把这插件扩展一下。。

    /**
     * 气球或者泡泡向上飘动
     * $(".box").fly({
     *      photos: ["images/red.png", "images/yellow.jpg"]
     * });
     * Created by 赵欢磊 on 2014/12/10
     * http://www.cnblogs.com/huanlei/
     */
    
    ;(function($) {
        $.fn.extend({
            fly: function(options) {
                options = $.extend({
                    minSize: 40,    //气球最小尺寸
                    maxSize: 100,    //气球最大尺寸
                    interval: 300,    //气球生成时间间隔,数值越小气球越多
                    photos: []    //气球一张或多张图片,数组
                }, options);
    
                var timer,
                    box = $(this),
                    boxHeight = box.height(),
                    boxWidth = box.width(),
                    len = options.photos.length,
                    photo = $("<img/>").css({"position": "absolute"});
                box.css({"position": "relative", "overflow": "hidden"});
                if (!len) return;   //至少一张图片,否则不执行下面的
                timer = setInterval(function() {
                    var photoSrc = options.photos[Math.floor(Math.random() * len)],
                        photoWidth = parseInt(options.minSize) + Math.random() * (parseInt(options.maxSize) - parseInt(options.minSize)),
                        startTop = boxHeight,
                        endTop = "-100%",
                        startLeft = Math.floor(Math.random() * boxWidth),
                        endLeft = Math.abs(startLeft - Math.floor(Math.random() * boxWidth)),
                        duration = parseInt(boxHeight * 10 + Math.random() * 1000);
                    if (!photoSrc.trim()) return;  //图片src不能是空的
                    photo.clone().attr("src", photoSrc).appendTo(box).css({
                        top: startTop,
                        left: startLeft,
                         photoWidth
                    }).animate({
                        top: endTop,
                        left: endLeft
                    }, duration, "linear", function() {
                        $(this).remove();
                    });
                }, options.interval);
            }
        });
    })(jQuery);
  • 相关阅读:
    离散数学期中复习
    计算机组成原理实验_算术逻辑运算器的实现
    数值分析第一章插值方法
    数值分析绪论
    数值分析第三章 常微分方程的差分方法
    数值分析第二章 数值积分
    数据库删除信息后,再次加入信息ID不再从1开始的解决办法
    Codeforces Round #670 (Div. 2)(树的重心,dfs求子树大小)
    Codeforces Round #670 (Div. 2)B. Maximum Product(5个数乘积最大)
    Codeforces Round #668 (Div. 2)A->C
  • 原文地址:https://www.cnblogs.com/huanlei/p/4167662.html
Copyright © 2011-2022 走看看