自己用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 相关文章推荐
30个精美的jQuery幻灯片效果插件和教程
Aug 23 Javascript
jquery 操作iframe的几种方法总结
Dec 13 Javascript
setTimeout自动触发一个js的方法
Jan 15 Javascript
jQuery中:text选择器用法实例
Jan 03 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
Jan 20 Javascript
Angular.js如何从PHP读取后台数据
Mar 24 Javascript
使用JSON作为函数的参数的优缺点
Oct 27 Javascript
jquery判断页面网址是否有效的两种方法
Dec 11 Javascript
Javascript 实现计算器时间功能详解及实例(二)
Jan 08 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
Vue源码学习之关于对Array的数据侦听实现
Apr 23 Javascript
javascript实现时钟动画
Dec 03 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
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
php中执行系统命令的方法
2015/03/21 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
js对象基础实例分析
2015/01/13 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
vuex实现购物车功能
2020/06/28 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
python实现PID算法及测试的例子
2019/08/08 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python——全排列数的生成方式
2020/02/26 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
一套SQL笔试题
2016/08/14 面试题
经贸日语专业个人求职信范文
2013/12/28 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
春风行动实施方案
2014/03/28 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
学习十八大的心得体会
2014/09/01 职场文书
无私奉献演讲稿
2014/09/04 职场文书
失恋33天观后感
2015/06/11 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python