气球或者泡泡向上飘动 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: , //气球最小尺寸
maxSize: , //气球最大尺寸
interval: , //气球生成时间间隔,数值越小气球越多
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 * + Math.random() * );
if (!photoSrc.trim()) return; //图片src不能是空的
photo.clone().attr("src", photoSrc).appendTo(box).css({
top: startTop,
left: startLeft,
width: photoWidth
}).animate({
top: endTop,
left: endLeft
}, duration, "linear", function() {
$(this).remove();
});
}, options.interval);
}
});
})(jQuery);
气球或者泡泡向上飘动 jQuery插件的更多相关文章
- js最详细的基础,jquery 插件最全的教材
一.Js的this,{},[] this是Javascript语言的一个关键字,随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是调用的函数自己. { } 大括号 ...
- 40 个让你的网站更加友好的 jQuery 插件
一个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个jQuery插件是一个基本的可以扩充jQuery 原型对 ...
- 40个让你的网站屌到爆的jQuery插件
一 个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个 jQuery插件是一个基本的可以扩充jQuery 原 ...
- 15款帮助你实现响应式导航的 jQuery 插件
对于我们大多数人来说,建立一个负责任的布局中最困难的方面是规划和导航的实现.由于没有真正经得起考验的通用解决方案,您可以使用的菜单设计风格将取决于正在建设的网站类型. 无论你正在建设什么类型的网站,在 ...
- 推荐几个jQuery插件
jQuery仿京东无限级菜单HoverTree http://www.cnblogs.com/jihua/p/hvtree.html 多级弹出菜单jQuery插件ZoneMenu http://www ...
- 全屏滚动-jQuery插件实现
全屏滚动 <---很久没写了,这段忙了点,以后还是每周尽量写点东西---> 在很多情况下,我们需要页面的全屏滚动,尤其是移动端.今天简要的介绍一下全屏滚动的知识. 一.全屏滚动的原理 1. ...
- 2014年50个程序员最适用的免费JQuery插件
有用的jQuery库是设计师和开发者之间一个非常熟悉的短语.这是现在互联网中最流行的JavaScript函数库之一.每个设计师和开发人员都应该知道它的重要性,而且熟悉它的功能和特点. jQuery几乎 ...
- 期待已久的2012年度最佳jQuery插件揭晓
近日,国外著名博客WDL发布了2012年度最佳 jQuery 插件.jQuery 自2006年发布以来,经过6年的迅速发展,目前已是最流行和使用最广泛的 JavaScript 框架,这主要归功于众多围 ...
- 如何创建一个自定义jQuery插件
简介 jQuery 库是专为加快 JavaScript 开发速度而设计的.通过简化编写 JavaScript 的方式,减少代码量.使用 jQuery 库时,您可能会发现您经常为一些常用函数重写相同的代 ...
随机推荐
- Connect教程系列--响应式布局(一)
微软终于跨平台了,最近在第九频道(Event-Visual Studio)下面出来一系列关于vs2015的视频,介绍vs2015以及.NET5.0的新特性等,现针对其讲解的.NET和ASP.NET,进 ...
- Yii中设置时间分区
在wamp环境下,运行一个Php yii的项目 出现问题: Use of undefined constant PRC - assumed 'PRC' 检测我的环境 PHP5.3 检测Php.ini中 ...
- asp.net froms 移动平台(iphone 微信)无法存储的解决办法。
更改form的默认设置,让系统不再根据设备来判断是否支持cookie 在站点的配置文件中有关于Form认证的配置,在配置<authentication mode="Forms" ...
- ASP.NET WEB API 中的路由调试与执行过程跟踪
路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Inst ...
- Java Config 下的Spring Test方式
用了三种方式: 1.纯手动取bean: package com.wang.test; import com.marsmother.commission.core.config.MapperConfig ...
- SVN中Branch的创建与合并
在使用源代码版本控制工具时,最佳实践是一直保持一个主干版本.但是为了应付实际开发中的各种情况,适时的开辟一些分支也是很有必要的.比如在持续开发新功能的同时,需要发布一个新版本,那么就需要从开发主干中建 ...
- 微软Dynamics 使用葡萄城的Wijmo 5提供移动端用户界面
近日,全球最大的控件提供商葡萄城公司宣布: 葡萄城近日与微软公司达成合作,将Wijmo 产品线的HTML5和JaveScript 控件融合到微软Dynamics CRMOnline 2016版中. 随 ...
- clientHeight,offsetHeight与scrollHeight的相关知识
在html里,width与height是最常用也是最基础的两个属性,因此,在js里,我们也经常需要操作这两个属性.js关于这两个属性提供了client*,offset*与scroll*,很多同学搞不清 ...
- CSS3系列之3D制作 再研究
水平翻转效果: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...
- 利用nodejs模块缓存机制创建“全局变量”
在<深入浅出nodejs>有这样一段(有部分增减): 1.nodejs引入模块分四个步骤 路径分析 文件定位 编译执行 加入内存 2.核心模块部分在node源代码的编译过程中就编译成了二级 ...