自己用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 相关文章推荐
JQuery 风格的HTML文本转义
Jul 01 Javascript
Jquery AJAX 框架的使用方法
Nov 03 Javascript
javascript打印html内容功能的方法示例
Nov 28 Javascript
AngularJS Ajax详解及示例代码
Aug 17 Javascript
javascript动画之模拟拖拽效果篇
Sep 26 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
Nov 18 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
jquery-file-upload 文件上传带进度条效果
Nov 21 jQuery
Vue官方文档梳理之全局配置
Nov 22 Javascript
使用javascript函数编写简单银行取钱存钱流程
May 26 Javascript
微信小程序实现左滑修改、删除功能
Oct 19 Javascript
JS实现可视化音频效果的实例代码
Jan 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
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
在python的类中动态添加属性与生成对象
2016/09/17 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
少先队工作总结2015
2015/05/13 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
nginx结合openssl实现https的方法
2021/07/25 Servers