自己用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 相关文章推荐
图片之间的切换
Jun 26 Javascript
HTML TO JavaScript 转换
Jun 26 Javascript
JQuery中getJSON的使用方法
Dec 13 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
JavaScript中for..in循环陷阱介绍
Nov 12 Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 Javascript
深入理解JavaScript 函数
Jun 06 Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
Jan 18 Javascript
jQuery插件zTree实现删除树子节点的方法示例
Mar 08 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
详解Angular 4.x NgTemplateOutlet
May 24 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 HTML代码串 截取实现代码
2009/06/29 PHP
基于pear auth实现登录验证
2010/02/26 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
angularjs基础教程
2014/12/25 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
JavaScript实现时间表动态效果
2017/07/15 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
在校学生职业规划范文
2014/01/08 职场文书
开会迟到检讨书
2014/01/08 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
借条格式范本
2015/05/25 职场文书
爱国教育主题班会
2015/08/14 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers