使用 vue 实现灭霸打响指英雄消失的效果附demo


Posted in Javascript onMay 06, 2019

写在前面

灭霸打响指的消失效果。效果来源于 Google 搜索“灭霸” 或者 “thanos”。算是蹭热度的一个 Feature, 我通过 F12 试图去查看是如何实现的,也抠了一些音频、图片资源下来。后来在 github 上找到了一个现有的项目 Thanos_Dust, 所以参考了部分它的代码。 其实它的代码已经算比较完善了,在它的基础上,我用 vue 来写了一下,加了一些英雄,修复了一些 bug ,加了一些效果之类的。

使用 vue 实现灭霸打响指英雄消失的效果附demo

使用 vue 实现灭霸打响指英雄消失的效果附demo

demo

  • 点击一下手套,伴随音效和响指的动画,会有一半的英雄消失。
  • 消失之后,再点一下,消失的英雄又会回来。

可以点击下面的链接体验一下

demos

使用 vue 实现灭霸打响指英雄消失的效果附demo

细节

随机选取一半的英雄,是通过下面的算法进行选取的:

arr.sort(function() {
 return 0.5 - Math.random();
});

被选中的英雄灰飞烟灭的效果解释:

  1. 使用 html2canvas 库将每一个英雄所在的 dom 节点渲染为一个 canvas 节点
  2. 通过 generateFrames 方法,将整块的 canvas 画布图像按像素分割成许多块
  3. 创建一个跟选中的英雄所在的 dom 节点同一个位置、同样的大小的容器覆盖原 dom 节点
  4. 把第二步创建的块绘制到新的画布上,并都通过 appendChild 方法添加到第三步创建的父容器中
  5. 随机设置每一块的 rotate 角度和 translate 像素,就能完成灰飞烟灭的效果
  6. 将被覆盖的英雄的 dom 节点设置为不可见的,就完成了响指操作。

翻转时间,英雄又回来的效果是将原来的 dom 节点设置为可见的,并加了回复动画。( google 的原版恢复动画是将 color 设置为 green ,因为这里没什么文字效果并不明显,就设置成了 background-color

最后

整个过程其实跟 vue 没什么关系,无论用什么前端技术栈都可以。以前也没有接触过 canvas ,似乎觉得还有点意思, 后面可能慢慢还会做一些改动,会继续学习 canvas 。最后附上github 地址.

总结

以上所述是小编给大家介绍的使用 vue 实现灭霸打响指英雄消失的效果附,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
用js得到网页中所有的div的id
Oct 19 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
Jan 17 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
Sep 25 Javascript
javascript实现仿腾讯游戏选择
May 14 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
Dec 06 Javascript
vue-cli 3 全局过滤器的实例代码详解
Jun 03 Javascript
js中offset,client , scroll 三大元素知识点总结
Sep 11 Javascript
Vue v-text指令简单使用方法示例
Sep 19 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
Aug 07 Javascript
Html5生成验证码的示例代码
May 10 Javascript
vue如何截取字符串
May 06 #Javascript
用vscode开发vue应用的方法步骤
May 06 #Javascript
微信小程序合法域名配置方法
May 06 #Javascript
手把手教你使用TypeScript开发Node.js应用
May 06 #Javascript
微信小程序上线发布流程图文详解
May 06 #Javascript
ES6的解构赋值实例详解
May 06 #Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 #Javascript
You might like
生成静态页面的PHP类
2006/07/15 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php+ajax实现无刷新分页的方法
2014/11/04 PHP
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
详解Node 定时器
2018/02/26 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
python网络编程学习笔记(四):域名系统
2014/06/09 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
python三方库之requests的快速上手
2019/03/04 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
高中自我鉴定
2013/12/20 职场文书
高三毕业寄语
2014/04/10 职场文书
英语教师自荐信
2014/05/26 职场文书
求职信的正确写法
2014/07/10 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书