• 更新一下 我的红包雨


    'use strict';
    (function($){
        //红包初始化
        var redEnvelope_defaults = {
            imgSize_70,//红包的宽度 px
            _class:'envelope',//红包的样式
            imgEnvSrc:'../images/game/envelopeRain/red_close.png',
        };
        var $envelopeObj = null;
        var Init;
        Init =(function(){
            function Init(element,options){
                this.$settings = $.extend({}, $.fn.redEnvelope.defaults, options);
                this.$element = $(element);
                this.init();
            }
            
            //游戏初始化
            Init.prototype.init = function(){
                if(this.$settings != undefined || this.$settings != null ){
                    for(var option in this.$settings){
                        redEnvelope_defaults[option] = this.$settings[option];
                    }
                }
                $envelopeObj = this.$element;
                gameInit();
            }
            
            Init.prototype.stop = function(){
                stopGame();
            }
            
            return Init;
        })();
        
        $.fn.redEnvelope = function(options,$arg){
            var retrunValue = null;
            this.each(function(){
                var $me = $(this),
                instance = $me.data('redEnvelope');
                if(!instance){
                    $me.data('redEnvelope',new Init(this, options));
                }
                if ($.type(options) === 'string') {
                    retrunValue = instance[options]($arg);
                }
                if(retrunValue === null){
                    return this;
                }else{
                    return retrunValue;
                }
            });
        }
        //游戏初始化属性
        $.fn.redEnvelope.defaults = {
            
        };
        var envInterval =null;
        function gameInit(){
            //红包初始化
            envInterval = setInterval(InitEnv,200);
        }
        function InitEnv (){
            var imgEnv = document.createElement('img');
            imgEnv.src = redEnvelope_defaults.imgEnvSrc;
            imgEnv.style.width = redEnvelope_defaults.imgSize_width+'px';
            imgEnv.setAttribute('class',redEnvelope_defaults._class);
            imgEnv.addEventListener('touchend',redEnvelope_defaults.clickFun);
            evnPosition(imgEnv,$envelopeObj);
        }
        function evnPosition (img){
            var containerWidth = $envelopeObj.width();
            var containerHeight = window.screen.height;
            $envelopeObj.prepend(img);
            //红包初始的位置
            var startTop = parseInt(Math.random()*10+(-10))
            var startLeft = parseInt(Math.random()*containerWidth);
            //移动的位置
            var moveLeft = parseInt(Math.random()*containerWidth+(-(containerWidth/2)));
            var time=parseInt(Math.random() * 1000+1200);
            evnAnimation({'startLeft':startLeft, 'startTop':startTop, 'moveLeft':moveLeft,'moveTop':containerHeight},time);
        }
        /*添加元素到主内容上*/
        function evnAnimation (posObject,time){
            $envelopeObj.children('img:first').css({'left':posObject.startLeft,'top':posObject.startTop});
            $envelopeObj.children('img:first').animate(
                {
                    'left':posObject.startLeft-posObject.moveLeft,
                    'top':posObject.moveTop
                },
                time,
                'linear',
                function(){
                    $(this).remove();
                }
            );
        
        }
        function stopGame(){
            clearInterval(envInterval);
        }
    })($);
    View Code

    只需要找个红包的图片,写个父类.rain-wrap的样式和红包的样式,红包雨就可以如期而至啦~~~

    执行开始:

    .rain-wrap{

      100%;

      height:100%;

    }

    .envelope{
         60px;
         height:auto;
         overflow: hidden;
         position: absolute;
         -webkit-user-select: none;
         border:none;
    }

    $('.rain-wrap').redEnvelope();

    可以填点击红包的方法,例:

    function clickFun(){

      alert(1);

    }

    $('.rain-wrap').redEnvelope({'clickFun':clickFun});

    还可以传递红包的样式:

    .envelope1{....}

    $('.rain-wrap').redEnvelope({'_class':'envelope1'});

    红包的图片途径的改变:

    $('.rain-wrap').redEnvelope({'imgEnvSrc':'../envelope.png'});

  • 相关阅读:
    php环境搭建
    smarty模板基础
    ThinkPHP模板的知识
    php调用API支付接口 可个人使用,无需营业执照(使用第三方接口,调用的天工接口。)
    HTML插入地图的方法
    phpcms调用语句
    phpcms基础循环
    js鼠标拖动(转载)
    js源生ajax
    php读取xml文件并处理
  • 原文地址:https://www.cnblogs.com/wpp12345/p/5853022.html
Copyright © 2020-2023  润新知