使用 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 相关文章推荐
解决FireFox下[使用event很麻烦]的问题
Nov 26 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
Feb 24 Javascript
简介AngularJS中使用factory和service的方法
Jun 17 Javascript
BootStrap按钮标签及基本样式
Nov 23 Javascript
JS仿淘宝搜索框用户输入事件的实现
Jun 19 Javascript
JavaScript正则表达式和级联效果
Sep 14 Javascript
tween.js缓动补间动画算法示例
Feb 13 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
Mar 01 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
Sep 19 Javascript
Cocos2d实现刮刮卡效果
Dec 20 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
Jul 21 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异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
asp 的 分词实现代码
2007/05/24 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
Python实现简单HTML表格解析的方法
2015/06/15 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
自荐信格式
2013/12/01 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
2014年班级工作总结
2014/11/14 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
财政局个人年终总结
2015/03/03 职场文书
2019 入党申请书范文
2019/07/10 职场文书
HAM-2000摩机图
2021/04/22 无线电