分享一个由原生JS实现的图片爆炸特效,效果如下:

实现的代码如下:

<!doctype html>
<html><head><meta charset="utf-8"><title>原生JS实现图片爆炸特效</title><style type="text/css">* {margin: 0;padding: 0;list-style: none;}#box {width: 640px;height: 400px;position: absolute;left: 50%;top: 50%;margin: -200px 0 0 -320px;border: 1px solid black;}#child {width: 100%;height: 100%;position: absolute;}#child>div {position: absolute;left: 0;top: 0;width: 100%;height: 100%;}</style>
</head><body><div id='box'><div id='child'></div></div><script type="text/javascript">var index = 0;var zIndex = 9999999;// 本地图片路径var imgList = ['images/0.jpg', 'images/1.jpg', 'images/2.jpg'];var imgIndex = 0;function random(min, max) {return parseInt(min + Math.random() * (max - min));};show(10, 8);function show(x, y) {// 爆炸前生成下一张图片var div = document.createElement('div');div.id = 'l' + index;div.style.zIndex = zIndex;// 让下一张图片位于爆作图之下zIndex--;index++;// 如果三张不同的图片切换完,切换到第一张if (imgIndex == imgList.length) {imgIndex = 0};child.appendChild(div);// 按数量生成小格子for (var i = 0; i < y; i++) {for (var j = 0; j < x; j++) {var div = document.createElement('div');// 给小格子生成宽高div.style.width = child.offsetWidth / x + 'px';div.style.height = child.offsetHeight / y + 'px';// 浮动生成大的divdiv.style.float = 'left';// 背景及背景定位div.style.background = 'url(' + imgList[imgIndex] + ')';div.style.backgroundPositionX = -j * (child.offsetWidth / x) + 'px';div.style.backgroundPositionY = -i * (child.offsetHeight / y) + 'px';// 随机延迟过渡div.style.transition = (1.3 + Math.random() * 0.5) + 's all ease ' +(0.1 + Math.random() * 0.16) + 's';document.getElementById('l' + (index - 1)).appendChild(div);}};// 切换到下一张imgIndex++;// 图片爆炸及消失setTimeout(function () {var divList = document.getElementById('l' + (index - 1)).children;for (var i = 0; i < divList.length; i++) {// 爆炸divList[i].style.transform = 'perspective(800px) rotateX(' + random(-190, 191) + 'deg) rotateY(' + random(-190, 191) + 'deg) scale(' + (1.5 + Math.random() * 0.6) + ') translateX(' + random(-300, 301) + 'px) translateY(' + random(-300, 301) + 'px) rotate(' + random(-190, 191) + 'deg)';// 消失divList[i].style.opacity = 0;};// 自调函数,让爆炸之前底部切换到下一张show(x, y);// 清除爆炸后元素占位setTimeout(function () {// 底层ID为l+(index+0),未爆炸为l+(index+1),已爆炸为l+(index+2)child.removeChild(document.getElementById('l' + (index - 2)))}, 1800);}, 2000);}</script>
</body></html>

原生JS实现图片爆炸特效相关推荐

  1. 原生JS实现图片跑马灯特效

    今天给大家分享一个用原生JS实现的图片跑马灯特效,效果如下: 实现的代码如下,欢迎大家复制粘贴. <!DOCTYPE html> <html><head><m ...

  2. 如何上传图片到fileupload空间_如何用原生js写图片上传组件v2.0(还有新版本)?...

    js图片上传组件: 基本要求: 1.上传的图片可预览,可删除,可被覆盖更新 2.要求图片格式为jpg和png,大小不能超过2M 新加需求: 1.模拟回显,可用本地存储(实际上的回显是通过后台传过来的u ...

  3. 原生JS实现图片滚动

    2019独角兽企业重金招聘Python工程师标准>>> 原生JS实现图片滚动 一.原理 黑色盒子是最终显示滚动图像的区域,绿色盒子为其子容器,其宽度要大于黑色外层盒子,这样才能通过设 ...

  4. 十分钟教会你原生JS压缩图片,极其精简版

    十分钟教会你原生JS压缩图片,极其精简版 原文链接:https://blog.csdn.net/yasha97/article/details/83629510 (一)实现思路 先通过input标签获 ...

  5. html多图轮播淡入淡出js,原生JS实现图片轮播与淡入效果的简单实例

    最近对css的兴趣提不起来,因为以前对图片轮播一直耿耿于怀苦于学艺不精,所以,花了点时间熟悉了一下js.然后一条道走到黑,用jquery和js写了一下轮播和图片淡入的效果.以后学习的路很长,希望自己在 ...

  6. 原生JS实现球面展示特效

    分享一个由原生JS实现的球面展示效果,效果如下: 实现代码如下: <!DOCTYPE html> <html><head><meta http-equiv=& ...

  7. html原生js实现图片轮播,原生JS实现图片轮播切换效果

    原生JS实现图片轮播切换效果 2019-01-06 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了原生JS实现图片轮播切换效果,编程之家小编觉得挺不错的,现在分 ...

  8. 手机端移动端的前端原生js裁剪图片上传

    手机端移动端的前端原生js裁剪图片上传 选择头像时裁剪上传,确保图片是个正方形,不会出现压扁拉伸的现象 效果图 原理很简单,其实就是用canvas截图出来而已,只是要对比例做一下处理. <!-- ...

  9. 原生JS实现飘浮关键词特效

    分享一个原生JS实现的飘浮关键词的效果,鼠标悬停可让关键词停止运动,点击关键词可跳转到对应的页面,效果如下: 实现的代码如下: <!DOCTYPE html> <html>&l ...

  10. 如何用原生JS制作图片时钟

    程序设计之道无远弗届,御晨风而返.---- 杰佛瑞 · 詹姆士 今天分享一个小demo,如何用原生JS制作图片时钟,话不多说上代码. html[外链图片转存失败(img-mD0n42FM-156223 ...

最新文章

  1. JBI与SCA的区别
  2. restful rest_HATEOAS的RESTful服务。 超媒体:REST的秘密要素
  3. Python Django项目部署 Linux 服务器
  4. 云小课 | DSC:快速识别敏感数据并脱敏
  5. linux系统命令行方式复制文件
  6. 深入浅出统计学 笔记 总结 学习心得
  7. 【动画消消乐】HTML+CSS 自定义加载动画 053
  8. Photoshop插件-HDR(四)-脚本开发-PS插件
  9. jvm讲解-jvm内存结构详解
  10. 计算机专业建设会议纪要,智能控制教研室会议纪要6号
  11. 调查:听取当前用户的意见(并改进),是为什么?
  12. 制造业质量管理四大病因
  13. Springboot 拦截器链 - 加载拦截器
  14. 深入学习POST + JS加解密
  15. halcon第五讲:汉字识别
  16. surface pro4 多点触控失灵及触控笔失灵问题的解决
  17. 今日所学(五) [当日学习内容检查,如果有误,望大家赐教]
  18. 为dev c++配置图形开发环境easyx之mingw32
  19. Openlayers简介
  20. 论文导读:Unsupervised Person Re-identification via Multi-label Classification

热门文章

  1. python如何抓取网页里面的文字_如何利用python抓取网页文字、图片内容?
  2. 小米平板2 Windows刷回MIUI9线刷教程(2019)
  3. MYSQL安装以及登录问题_飘云羽逸_新浪博客
  4. android 蓝牙耳机 找不到驱动程序,bluetooth外围设备找不到驱动程序怎么办
  5. stc单片机呼吸灯c语言,用51单片机制作呼吸灯
  6. 句子迷 有哪些你第一眼就爱上的电影台词
  7. sql中将字符串转换成日期
  8. 网络迷踪常用网站工具汇总(采集意见版)——炒饭论坛
  9. 国家气象站逐日数据据v3.0 提取转成SWAT所需要格式
  10. 华为企业业务的数字化与绿色节能“双向突围”