看了张大神的这篇文章后自己写的,兼容性不好clip-path要加-webkit-

css

            #test img{position: absolute;}
.active .clip{
will-change: transform;
animation: clear_transform .5s both;
}
@keyframes clear_transform {
to {
opacity: ;
transform: translate3d(, , ) rotate() scale();
}
}
.active #image{
opacity: ;
animation: fadeIn .1s .4s both;
}
@keyframes fadeIn {
from { opacity: ; }
to { opacity: ; }
}
#repeat{position: absolute;top: 200px;}

html

<div id="test">
<img src="http://img.mswon.com/img.php?url=http://npic7.edushi.com/cn/zixun/zh-chs/2016-05/31/e-3053153-s1464644414872299.jpg" id='image'/>
</div>
<button id='repeat'>再来一次</button>

JS

test('image');//image-id
function test(ele){
var clip = {
parent:'',
id:ele,
src:'',
num:,//裁剪个数
x_tier:,//X轴要裁剪的个数
y_tier:,//Y轴要裁剪的个数
h:,//图片高度
w:,//图片宽度
y:,//要裁剪的高度40
x://要裁剪的宽度60
}
clip.parent = document.getElementById(ele).parentNode;//图片父级div
var img = document.getElementById(clip.id);
img.onload = function(){
clip.src = img.getAttribute('src');
clip.h = img.clientHeight;
clip.w = img.clientWidth;
clip.x = clip.w/clip.x_tier;
clip.y = clip.h/clip.y_tier;
clip.num = clip.num*clip.num;
start_clip();
}
function start_clip(){
var info = '<img src="'+clip.src+'" id="image" style="opacity:0;"/>';
for (var i = ;i<clip.x_tier;i++){
for (var j = ;j<clip.y_tier;j++) {//(x,y)
//裁剪
var d1 = (clip.x*j)+'px '+(clip.y*i)+'px';
var d2 = (clip.x*j)+'px '+(clip.y*i+clip.y)+'px';
var d3 = (clip.x*j+clip.x)+'px '+(clip.y*i+clip.y)+'px';
var d4 = (clip.x*j+clip.x)+'px '+(clip.y*i)+'px';
var css1 = '-webkit-clip-path: polygon('+d1+','+d2+','+d3+','+d4+');';
//旋转
var r = random()+'deg';
//位移
var t_x = random()+'px';
var t_y = random()+'px';
var t_z = random()+'px';
//缩放
var s = random();
var css2 = '-webkit-transform:translate3d('+t_x+','+t_y+','+t_z+') rotate('+r+') scale('+s+');';
info +='<img class="clip" src="'+clip.src+'" style="'+css1+''+css2+'"/>'
}
}
clip.parent.innerHTML = info;
clip.parent.className = 'active';
}
//随机数
function random(n){
var num = Number(Math.random()*n).toFixed();
return num;
}
document.getElementById('repeat').onclick = function(){
clip.parent.innerHTML = '<img src="'+clip.src+'" id="'+clip.id+'"/>';
test(clip.id);
}
}

代码地址

clip-path的任意元素的碎片拼接动效的更多相关文章

  1. 基于clip-path的任意元素的碎片拼接动效(源自鑫空间)

    一.实现原理. 效果本质上是CSS3动画,就是旋转transform:rotate和位移:transform:translate,只是旋转和位移的部件是三角碎片而已.三角是使用CSS3 clip-pa ...

  2. CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板。

    CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板. CLIP PATH (MASK) GENERATO ...

  3. WPF-3D动效-文字球形环绕

    原文:WPF-3D动效-文字球形环绕 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013224722/article/details/81784 ...

  4. 玩转HTML5移动页面(动效篇)

    原文:http://www.grycheng.com/?p=458 作为一名前端,在拿到设计稿时你有两种选择: 1.快速输出静态页面 2.加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有 ...

  5. 动效解析工厂:Mask 动画

    转载自:http://www.cocoachina.com/ios/20160214/15250.html 前言:很多动效都是多种动画的组合,有时候你可能只是需要其中某个动画,但面对庞杂的代码库或是教 ...

  6. iOS开发之 Lottie -- 炫酷的动效

    动效在软件开发中非常常见,炫酷的动画能提升应用的B格,然而由设计师的设计转化成程序猿GG的代码是个非常"痛苦"的过程.对于复杂动画,可能要花费很多时间去研究和实现.Lottie 的 ...

  7. 新版MATERIAL DESIGN 官方动效指南(三)

    运动 Material design 的动效会被类似真实世界中的力的影响,类似重力. 物体在屏幕内的运动 屏幕内物体在两点之间的运动,是沿着一条自然.凹陷的弧线.屏幕上所有的运动都可以使用标准曲线. ...

  8. QQ音乐的动效歌词是如何实践的?

    本文由云+社区发表 作者:QQ音乐技术团队 一. 背景 1. 现状 歌词浏览已经成为音乐app的标配,展示和动画效果也基本上大同小异,主要是单行的逐字染色的卡拉OK效果和多行的滚动效果.当然,我们也不 ...

  9. iOS动画进阶 - 实现炫酷的上拉刷新动效

    移动端訪问不佳,请訪问我的个人博客 近期撸了一个上拉刷新的小轮子.仅仅要遵循一个协议就能自己定义自己动效的上拉刷新和载入,我自己也写了几个动效进去,以下是一个比較好的动效的实现过程 先上效果图和git ...

随机推荐

  1. Oracle 跨库 查询 复制表数据

    在目前绝大部分数据库有分布式查询的需要.下面简单的介绍如何在oracle中配置实现跨库访问. 比如现在有2个数据库服务器,安装了2个数据库.数据库server A和B.现在来实现在A库中访问B的数据库 ...

  2. java调用.net的webservice

    目录(?)[-] 一参考文献 二概述 三实例 注意点   一.参考文献 1. http://www.cnblogs.com/xuqifa100/archive/2007/12/13/993926.ht ...

  3. 充电 IC 对 0V 电池充电问题

    只讨论锂聚合物电池,由于设置漏电流原因,有些锂电池会放电到 0V(正常是不应该的). 但是在时候就是会发电到 0V,这里就要考虑充电 IC 是否有对 0V 电池充电的功能,还有保护 IC 是否允许 0 ...

  4. UOJ 188 【UR #13】Sanrd——min_25筛

    题目:http://uoj.ac/problem/188 令 \( s(n,j)=\sum\limits_{i=1}^{n}[min_i>=p_j]f(j) \) ,其中 \( min_i \) ...

  5. Windows 客户端时间更新脚本NTP

    Windows XP 客户端时间更新脚本NTP ::Windows XP 客户端时间更新脚本NTP reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...

  6. 轻松理解execl系列函数

    execl函数功能如下:启动一个可执行文件,并且对他进行传送参数.一些原型如下 #include <unistd.h> extern char **environ; int execl(c ...

  7. npm使用入门(package.json)

    npm使用入门 crazygit 关注 2017.03.10 18:31 字数 1773 阅读 1617评论 0喜欢 10 NPM是什么 npm npm makes it easy for JavaS ...

  8. android onSaveInstanceState()及其配对方法。

    转自:http://blog.chinaunix.net/uid-22985736-id-2977672.html onSaveInstanceState() 和 onRestoreInstanceS ...

  9. rainmeter 修正天气插件信息不准确 设置居住城市

    rainmeter天气插件的原理是用爬虫抓取一个天气网页然后用自带的那一套正则表达式匹配出天气信息 在国外官网社区下载的插件的天气信息城市都会出现问题(因为插件作者又不知道你在哪),解决方法是在原基础 ...

  10. JAVA面向对象编程课程设计——网络版单机斗地主

    一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...