自己用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 简练的几个函数
Aug 29 Javascript
JS常见问题整理(持续更新)
Aug 06 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
May 21 Javascript
vue2.0实现导航菜单切换效果
May 08 Javascript
微信小程序动态显示项目倒计时效果
Jun 13 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
Jan 23 Javascript
vue组件jsx语法的具体使用
May 21 Javascript
对angularJs中ng-style动态改变样式的实例讲解
Sep 30 Javascript
vue头部导航动态点击处理方法
Nov 02 Javascript
javascript简单实现深浅拷贝过程详解
Oct 08 Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 Javascript
JS实现密码框效果
Sep 10 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
神族 Protoss 历史背景
2020/03/14 星际争霸
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
Javascript实现的分页函数
2006/12/22 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
Python封装原理与实现方法详解
2018/08/28 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python对常见数据类型的遍历解析
2019/08/27 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
pycharm导入源码的具体步骤
2020/08/04 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
小学老师寄语大全
2014/04/04 职场文书
企业环保标语
2014/06/10 职场文书
爱护公物标语
2014/06/24 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
护士节慰问信
2015/02/15 职场文书
物业公司管理制度
2015/08/05 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript