自己用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的Function详细
Nov 14 Javascript
验证手机号码的JS方法分享
Sep 10 Javascript
JavaScript中按位“异或”运算符使用介绍
Mar 14 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
基于jQuery实现的QQ表情插件
Aug 25 Javascript
详解javascript new的运行机制
Jan 26 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
Jul 22 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
vue form check 表单验证的实现代码
Dec 09 Javascript
vuex实现购物车的增加减少移除
Jun 28 Javascript
vue props 一次传多个值实例
Jul 22 Javascript
ElementUI 修改默认样式的几种办法(小结)
Jul 29 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
js 代码优化点滴记录
2012/02/19 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
Django中使用locals()函数的技巧
2015/07/16 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
Python创建数字列表的示例
2019/11/28 Python
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
高分子材料与工程专业推荐信
2013/12/01 职场文书
元旦活动感言
2014/03/08 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
教师评语大全
2014/04/28 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
2019大学生实习报告
2019/06/21 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL