html图片爆炸效果,利用CSS3制作3D图片爆炸效果
利用css3 transform和transition样式制作点击图片时 图片爆炸开并切换到下一张图片依次循环
首先先看一下效果图
Paste_Image.png
先描述一下大概思路:
布局时外面有一个大的父盒子(box)里面包含多个span(span都是js动态创建的)创建出来的span平铺到box上(定位), 多个span拼成一张图片,box是另一张图片 点击box时每个span爆炸开(移动 ,旋转并且 变大消失)这时会看到box的图片,当每个span过渡完成之后再瞬间恢复到原来的位置且图片换成与box相同的图片,这样就可以循环点击了,下面看一下具体的实现代码,代码里面每一步都有详细的解释:
Title
*{
margin:0;
padding:0
}
html,body{
overflow: hidden;
}
#box{
width:700px;
height:400px;
background:url("img/1.jpg");
position: absolute;
left:50%;
top:50%;
margin-top:-200px;
margin-left:-350px;
}
#box span{
position: absolute;
left:0;
top:0;
background:url("img/0.jpg");
transform:perspective(800px) translate(0px,0px) rotateX(0deg) rotateY(0deg) scale(1);
}
document.addEventListener('DOMContentLoaded',function(){
var oBox=document.getElementById('box');
//定义列
var C=7;
//定义列
var R=4;
//动态创建span 并且平铺
for(var i=0; i
for(var j=0; j
var oSpan=document.createElement('span');
//设置每个span的宽高
oSpan.style.width=oBox.offsetWidth/C+'px';
oSpan.style.height=oBox.offsetHeight/R+'px';
//给每个span定位
oSpan.style.left=j*oBox.offsetWidth/C+'px';
oSpan.style.top=i*oBox.offsetHeight/R+'px';
oBox.appendChild(oSpan);
//给每个span的背景图片定位 平铺后才能拼成一张完整的图片
oSpan.style.backgroundPosition=-oSpan.offsetLeft+'px -'+oSpan.offsetTop+'px';
}
}
var aSpan=oBox.children;
//定义一个图片的初始值
var iNow=0;
//定义开关
var bReady=true;
//点击图片时每个span爆炸
oBox.οnclick=function(){
//防止点击过快时图片会跳
if(bReady==false){return;}
bReady=false;
//每点击一次加1
iNow++;
for(var i=0; i
//获取每个span移动的距离
var x=aSpan[i].offsetLeft-oBox.offsetWidth/2;
var y=aSpan[i].offsetTop-oBox.offsetHeight/2;
//每个span移动并且随机旋转角度 并且放大
aSpan[i].style.WebkitTransform='perspective(800px) translate('+x+'px,'+y+'px) rotateX('+rnd(-180,180)+'deg) rotateY('+rnd(-180,180)+'deg) scale(1.4)';
aSpan[i].style.WebkitTransition='1s all ease';
aSpan[i].style.opacity=0;
}
};
//过渡完成后要执行的
aSpan[1].addEventListener('transitionend',function(){
for(var i=0; i
//瞬间把爆炸出去的图片还原
aSpan[i].style.WebkitTransform='perspective(800px) translate(0px,0px) rotateX(0deg) rotateY(0deg) scale(1)';
aSpan[i].style.opacity=1;
//瞬间回来的过程不需要过渡时间 所以把它干掉
aSpan[i].style.WebkitTransition='none';
//换图
aSpan[i].style.backgroundImage='url("img/'+iNow%3+'.jpg")';
oBox.style.backgroundImage='url("img/'+(iNow+1)%3+'.jpg")';
//过渡完成后允许点击
bReady=true;
}
},false);
//随机数函数
function rnd(n,m){
return parseInt(Math.random()*(m-n)+n);
}
},false);
html图片爆炸效果,利用CSS3制作3D图片爆炸效果相关推荐
- 网页特效:用CSS3制作3D图片立方体旋转特效
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- css使图片有3d效果,利用CSS3实现3D倾斜视差图片展示特效
特效描述:利用CSS3实现 3D倾斜 视差图片 展示特效.利用CSS3实现3D倾斜视差图片展示特效 代码结构 1. HTML代码 Movies Popular Princess Mononoke Sp ...
- html5实现立体照片墙效果,利用css制作3D照片墙效果
利用css制作3D照片墙,具体代码如下所示: 无标题文档 以上代码是准备工作,在html代码的body主体中放了一个div,里面包着你想要显示在照片墙上的照片,数量可以任意.接着开始着手写样式. bo ...
- 如何用css实现左右翻页效果图,如何利用CSS3实现3D翻书效果
这篇文章主要介绍了CSS3实现3D翻书效果,基于CSS3新属性Animation及transform实现类似翻书效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 先上效果图:(样式有点丑,可以忽 ...
- 利用css制作3d图片旋转_练习
效果: 鼠标触碰时(停止旋转并高亮): 代码: <!DOCTYPE html> <html lang="en"> <head><meta ...
- 制作3D图片立方体旋转特效
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- html怎么做成3d正方体,利用CSS3的3D效果制作正方体
学会用CSS3的3D效果制作一个正方体,有助于增强我们对3D场景的旋转和位移属性的理解.下面的动态图就是利用3D旋转位移,结合动画效果制作的.感兴趣的同学可以在完成正方体的制作基础上,再去探究一下添加 ...
- css3制作正方体,利用CSS3的3D效果制作正方体
学会用css3的3d效果制作一个正方体,有助于增强我们对3d场景的旋转和位移属性的理解.下面的动态图就是利用3d旋转位移,结合动画效果制作的.感兴趣的同学可以在完成正方体的制作基础上,再去探究一下添加 ...
- html怎么制作3D字体,用CSS3制作3D文字效果代码实例教程
这个简单的CSS文本阴影教程将一步步教你如何通过堆叠多层阴影来创建3D文字,然后进一步利用CSS3的transform和transition属性来实现鼠标移过字体放大的效果. 阿里西西web开发网为大 ...
最新文章
- PHP中遍历stdclass object 及 json 总结[中国航天神舟十号以json形式向地面返回数据]...
- svn: Can't convert string from 'UTF-8' to native
- 斯坦福2019秋季课程:图机器学习资料全公开
- 电影院终于要开门了!一大波搁浅的春节档大片即将上映...
- 使用Dwr时出现java.lang.SecurityException: Access to debug pages is denied
- python bootstrap安装_python + django + bootstrap + uWSGI + nginx 环境搭建
- JavaScript中获取数组元素索引号方法
- java DefaultMutableTreeNode 树形结构 目录 1. Tree的概念	1 1.1. treeNode接口,mutabletreenode接口	1 1.2. 10-4:以T
- PYTHON Image Module中Pix[x,y]详解
- 空洞卷积(扩张卷积dilated convolution)
- 推荐一款平台聚合音乐播放器:Listen 1
- 用于目标检测的细粒度动态头
- 安装JDK与配置java环境变量
- springcloud整合bus
- 电脑怎么用c语言写丘比特,C语言丘比特#includebr/#includebr/ 爱问知识人
- Android 朋友圈之评论回复列表
- 倒计时1天!大会议程全公开,论坛介绍看起来
- 北美科技公司“隐藏福利”大盘点:看完我彻底酸了...
- 定位java heap space_页面报OutofMemoryError:Java heap space问题定位及优化
- 三相可控全桥整流与DC Buck变换电路设计仿真问题汇总
热门文章
- SSH免密直接登录方法
- spring 注解说明以及@Resource和@Autowired的区别
- 如何快速实现Mathematica和Mathtype之间的切换
- Effective C# 原则34:创建大容量的Web API(译)
- oracle 中的几天后,几年后
- 想写Python爬虫?看这5个教程就行了!
- python | np.eye()函数
- pyqt界面屏幕分辨率自适应_后台系统界面设计踩过的那些坑
- linux编译ace,Linux下编译ACE
- Redis AOF带来的问题