自己用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 相关文章推荐
JavaScript delete 属性的使用
Oct 08 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
Aug 24 Javascript
bootstrap suggest搜索建议插件使用详解
Mar 25 Javascript
React-Native之定时器Timer的实现代码
Oct 04 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
Sep 15 Javascript
微信小程序实现的绘制table表格功能示例
Apr 26 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
JS实现容器模块左右拖动效果
Jan 14 Javascript
微信小程序复选框实现多选一功能过程解析
Feb 14 Javascript
Vue+tracking.js 实现前端人脸检测功能
Apr 16 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
ajax缓存问题解决途径
2006/12/06 PHP
php smarty的预保留变量总结
2008/12/04 PHP
PHP编程风格规范分享
2014/01/15 PHP
phplot生成图片类用法详解
2015/01/06 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
详解vue 组件
2020/06/11 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
python append、extend与insert的区别
2016/10/13 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
numpy中矩阵合并的实例
2018/06/15 Python
python中实现字符串翻转的方法
2018/07/11 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
课改先进个人汇报材料
2014/01/26 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
安卓程序员求职信
2014/02/28 职场文书
教代会开幕词
2015/01/28 职场文书
上诉状格式
2015/05/23 职场文书
交通事故案件代理词
2015/05/23 职场文书
python接口测试返回数据为字典取值方式
2022/02/12 Python
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python