自己用jQuery写了一个图片的马赛克消失效果


Posted in Javascript onMay 04, 2014

其中的一个效果:
自己用jQuery写了一个图片的马赛克消失效果 
html代码:

<h1>单击图片,产生效果</h1> 
<div class="box"></div>

插件代码:
; (function ($) { 
var defaults = { 
ani: 4, //动画效果.1.马赛克向中间聚拢,2.马赛克左上角聚拢,3.马赛克拉扯消失,4.原地缩小 
delay: 3000, //动画执行时间 
url:"0",//图片路径 
count: [20, 20]//马赛克水平数量,竖直方向数量;数量不能过多,否则计算量太大,计算机执行不了,导致浏览器卡死 
} 
$.fn.gysMaSaiKe = function (opt) { 
opt = $.extend({}, defaults, opt); 
if(opt.url=="0"){alert("没有填写图片路径参数");return;} 
var obj = $(this); 
if (obj.css("position") == "static") obj.css({ "position": "relative" }); 
obj.css("overflow","hidden"); 
var objWidth = obj.width(); 
var objHeight = obj.height(); 
(function (count,url, obj) { 
var littleBoxWidth = Math.floor(objWidth / count[0]); 
var littleBoxHeight = Math.floor(objHeight / count[1]); 
var html = ""; 
var littleBoxLeft = littleBoxWidth * (-1), littleBoxTop = littleBoxHeight * (-1); for (var i = 0; i < count[1]; i++) {//行 
littleBoxTop += littleBoxHeight; 
for (var j = 0; j < count[0]; j++) {//每一行中的单个span 
littleBoxLeft += littleBoxWidth; 
html += "<span style='display:block;position:absolute;left:" + littleBoxLeft + "px;top:" + littleBoxTop + "px;width:" + littleBoxWidth + "px; height:" + littleBoxHeight + "px; background-image:url("+url+");background-position:" + (littleBoxLeft) * (-1) + "px " + (littleBoxTop) * (-1) + "px;'></span>"; 
} 
littleBoxLeft = littleBoxWidth * (-1); 
} 
obj.html(html); 
})(opt.count,opt.url,obj); 
var animation = function (ani, delay, objs) { 
var res = function () { } 
if (ani == 1) {//马赛克向中间聚拢 
res = function () { 
objs.animate({ top: objHeight / 2, left: objWidth / 2, opacity: 0 }, delay); 
setTimeout(function(){obj.html("");},delay); 
} 
} 
else if (ani == 2) {//碎片向左上角聚拢消失 
res = function () { 
objs.animate({ left: 0, top: 0, opacity: 0 }, delay); setTimeout(function () { obj.html(""); }, delay); 
} 
} 
else if (ani == 3) {//拉扯消失 
res = function () { 
objs.filter(":even").animate({top:-100,left:-100},delay); 
objs.filter(":odd").animate({ top: -100, left:900}, delay); setTimeout(function(){obj.html("");},delay); 
} 
} 
else if (ani == 4) {// 
res = function () { objs.animate({ height: 0, width: 0 }, delay);setTimeout(function(){obj.html("");},delay); } 
} 
else { 
res = function () { objs.animate({ height: 0, width: 0 }, delay);setTimeout(function(){obj.html("");},delay); } 
} 
return res; 
} (opt.ani, opt.delay, obj.children()); 
obj.on("click", "span", animation); 
} 
})(jQuery);

css代码:
.box { width: 1000px; height:600px;}

插件的调用:
$(function () { 
$(".box").gysMaSaiKe({ 
count: [10, 15], //马赛克水平数量,竖直方向数量;数量不能过多,否则计算量太大,计算机执行不了,导致浏览器卡死 
ani: 4, //动画效果.1.马赛克向中间聚拢,2.马赛克左上角聚拢,3.马赛克拉扯消失,4.原地缩小 
delay: 5000, //动画执行时间 
url: "1.jpg" //图片路径 
}); 
});
Javascript 相关文章推荐
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 Javascript
jquery(hide方法)隐藏指定元素实例
Nov 11 Javascript
javascript设计模式之工厂模式示例讲解
Mar 04 Javascript
js字符串操作方法实例分析
May 06 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
Aug 29 Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
Oct 27 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 Javascript
javascript实现2048游戏示例
May 04 #Javascript
Extjs 4.x 得到form CheckBox 复选框的值
May 04 #Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 #Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
May 04 #Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 #Javascript
IE6-8中Date不支持toISOString的修复方法
May 04 #Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
May 04 #Javascript
You might like
PHP strtok()函数的优点分析
2010/03/02 PHP
php查询操作实现投票功能
2016/05/09 PHP
js树形控件脚本代码
2008/07/24 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
vue elementui form表单验证的实现
2018/11/11 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
python实现同时给多个变量赋值的方法
2015/04/30 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
Python读取word文本操作详解
2018/01/22 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
python 元组的使用方法
2020/06/09 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
优秀的茶餐厅创业计划书
2014/01/03 职场文书
白岩松演讲
2014/05/21 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
企业战略合作意向书
2015/05/08 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书