看了张大神的这篇文章后自己写的,兼容性不好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. 内核启动卡在 Starting kernel ...

    一.有时log是这样的 Card did not respond to voltage select! bytes read ms (39.8 MiB/s) bytes read ms (13.4 M ...

  2. About Apache Cordova

    Apache Cordova is a set of device APIs that allow a mobile app developer to access native device fun ...

  3. android 图片解码显示流程

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jingxia2008/article/details/32327699 问题来源 android 能 ...

  4. 序列化效率比拼——谁是最后的赢家avaScriptSerializer方式、DataContract方式、Newtonsoft.Json

    前言:作为开发人员,对象的序列化恐怕难以避免.楼主也是很早以前就接触过序列化,可是理解都不太深刻,对于用哪种方式去做序列化更是随波逐流——项目中原来用的什么方式照着用就好了.可是这么多年自己对于这东西 ...

  5. 实验八 c排序算法

    8.1 #include<stdio.h> int main(){ int a[5],i,j,k,t,z; //输入5个元素进入数组 for(i=0;i<5;i++) scanf(& ...

  6. JVM插码之五:Java agent+ASM实战--监控所有方法执行时间

    本文建立在对instrumentation和agent有初步的了解的前提下阅读,关于这2个类的讲解在其它文章中. 这是一个maven项目,pom中需要的配置,lib中有asm的jar包 pom.xml ...

  7. 杂项:Nuget

    ylbtech-杂项:Nuget Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework的应用时,Nug ...

  8. Win7_64位 CHM打不开

    (2)在命令行运行regsvr32 itss.dll (3)在命令行运行regsvr32 hhctrl.ocx (4)开始--运行--输入“regedit”,打开注册表,找到以下分支: HKEY_LO ...

  9. jstack 查看线程状态

    使用jstack pid命令可以查看JVM的线程状态,其中值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable等待资源,Waiting on condition(重点关注) ...

  10. php实现AES/CBC/PKCS5Padding加密解密(又叫:对称加密)

    今天在做一个和java程序接口的架接,java那边需要我这边(PHP)对传过去的值进行AES对称加密,接口返回的结果也是加密过的(就要用到解密),然后试了很多办法,也一一对应了AES的key密钥值,偏 ...