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);
  • 相关阅读:
    #ACsaber ——简单排序、字符串加空格、数组中的行 ~20.10.22
    #堆排序 20.09.27
    #并查集 20.09.25
    #卡特兰数 #抽屉原理 #Nim游戏 ——杂记
    #扩展欧几里得算法 ——线性同余方程 ~20.9.4
    #周测 7 —— 数的划分 、逆序对 、排座椅 、棋盘
    117. 占卜DIY
    116. 飞行员兄弟
    115.给树染色
    112.雷达设备
  • 原文地址:https://www.cnblogs.com/huanlei/p/4167662.html
Copyright © 2011-2022 走看看