javascript+canvas制作九宫格小程序


Posted in Javascript onDecember 28, 2014

js核心代码

/*

 *canvasid:html canvas标签id

 *imageid:html img 标签id

 *gridcountX:x轴图片分割个数

 *gridcountY:y轴图片分割个数

 *gridspace:宫格空隙

 *offsetX:x*y宫格相对canvas(0,0)X坐标偏移量

 **offsetX:x*y宫格相对canvas(0,0)Y坐标偏移量

 *isanimat:是否启用动画显示

 */

function ImageGrid(canvasid, imageid, gridcountX, gridcountY, gridspace, offsetX, offsetY, isanimat) {

    var image = new Image();

    var g = document.getElementById(canvasid).getContext("2d");

    var img=document.getElementById(imageid);

    image.src=img.getAttribute("src");

    g.drawImage(image, 0, 0);

    var imagedata = g.getImageData(0, 0, image.width, image.height);

    var grid_width = imagedata.width / gridcountX;

    var grid_height = imagedata.height / gridcountY;

    //动画

    if (isanimat) {

        var x = 0,

            y = 0;

        var inter = setInterval(function() {

            g.putImageData(imagedata, gridspace * x + offsetX, gridspace * y + offsetY, grid_width * x, grid_height * y, grid_width, grid_height);

            x < gridcountX ? x++ : x = 0;

            if (x == 0) {

                y < gridcountY ? y++ : y = 0;

            }

        }, 200);

        y == gridcountY ? clearInterval(inter) : null;

    } else { //非动画

        for (var y = 0; y < gridcountY; y++) {

            for (var x = 0; x < gridcountX; x++) {

                g.putImageData(imagedata, gridspace * x + offsetX, gridspace * y + offsetY, grid_width * x, grid_height * y, grid_width, grid_height);

            }

        }

    }

}

html代码

<canvas id="canvas1" width="900px" height="550px">Canvas demo</canvas>

 <img id="image1" style="display:none" src="//img.jbzj.com/file_images/article/201412/2014122894620636.jpg"/>

使用方法:

//eg...

ImageGrid("canvas1", "image1", 3, 3, 2, 220, 0, true); //3*3

ImageGrid("canvas1", "image1", 4, 4, 2, 440, 0, true); //4*4

ImageGrid("canvas1", "image1", 3, 4, 2, 660, 0, false); //3*4

代码很简洁,效果却非常炫酷,小伙伴们学会了吗?

Javascript 相关文章推荐
cnblogs TagCloud基于jquery的实现代码
Jun 11 Javascript
在网页中使用document.write时遭遇的奇怪问题
Aug 24 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 Javascript
JS动态获取当前时间,并写到特定的区域
May 03 Javascript
如何使用Jquery获取Form表单中被选中的radio值
Aug 09 Javascript
jquery iframe操作详细解析
Nov 20 Javascript
从零开始最小实现react服务器渲染详解
Jan 26 Javascript
node+express框架中连接使用mysql(经验总结)
Nov 10 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
Nov 30 Javascript
策略模式实现 Vue 动态表单验证的方法
Sep 16 Javascript
JavaScript实现滑动门效果
Jan 18 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 #Javascript
浅谈Javascript Base64 加密解密
Dec 28 #Javascript
JavaScript设计模式之代理模式介绍
Dec 28 #Javascript
JavaScript设计模式之外观模式介绍
Dec 28 #Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 #Javascript
jQuery中removeData()方法用法实例
Dec 27 #Javascript
jQuery中data()方法用法实例
Dec 27 #Javascript
You might like
php&amp;java(一)
2006/10/09 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
PHP处理会话函数大总结
2015/08/05 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
Div Select挡住的解决办法
2008/08/07 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
tab栏切换原理
2017/03/22 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
英语商务邀请函范文
2014/01/16 职场文书
护士见习期自我鉴定
2014/02/08 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
党员演讲稿
2014/09/04 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python