博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分享一个HTML5画布实现的超酷文字弹跳球效果
阅读量:6198 次
发布时间:2019-06-21

本文共 2753 字,大约阅读时间需要 9 分钟。

日期:2012/03/05

分享一个HTML5画布实现的超酷文字弹跳球效果

 

今天我们分享一个来自于的超酷弹跳球效果,这里我们使用纯HTML5的画布来实现动画及其图形。整个效果使用小球来组合生成字体,如果你的鼠标逼近这些小球,它们会四散而逃,当你的鼠标离开后,它们又自动复原,效果很酷,希望大家喜欢!

if (ball.y < (ball.radius)) {
ball.y = ball.radius + 2; ball.vy *= -1; ball.vy *= (1 - collisionDamper); } // right wall condition if (ball.x > (canvas.width - ball.radius)) {
ball.x = canvas.width - ball.radius - 2; ball.vx *= -1; ball.vx *= (1 - collisionDamper); } // left wall condition if (ball.x < (ball.radius)) {
ball.x = ball.radius + 2; ball.vx *= -1; ball.vx *= (1 - collisionDamper); } } } function Ball(x, y, vx, vy, color){
this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.color = color; this.origX = x; this.origY = y; this.radius = 10; } function animate(canvas, balls, lastTime, mousePos){
var context = canvas.getContext("2d"); // update var date = new Date(); var time = date.getTime(); var timeDiff = time - lastTime; updateBalls(canvas, balls, timeDiff, mousePos); lastTime = time; // clear context.clearRect(0, 0, canvas.width, canvas.height); // render for (var n = 0; n < balls.length; n++) {
var ball = balls[n]; context.beginPath(); context.arc(ball.x, ball.y, ball.radius, 0, 2 * Math.PI, false); context.fillStyle = ball.color; context.fill(); } // request new frame requestAnimFrame(function(){
animate(canvas, balls, lastTime, mousePos); }); } window.onload = function(){
var canvas = document.getElementById("myCanvas"); var balls = initBalls(); var date = new Date(); var time = date.getTime(); /* * set mouse position really far away * so the mouse forces are nearly obsolete */ var mousePos = {
x: 9999, y: 9999 }; canvas.addEventListener("mousemove", function(evt){
var pos = getMousePos(canvas, evt); mousePos.x = pos.x; mousePos.y = pos.y; }); canvas.addEventListener("mouseout", function(evt){
mousePos.x = 9999; mousePos.y = 9999; }); animate(canvas, balls, time, mousePos); };

转载地址:http://dynca.baihongyu.com/

你可能感兴趣的文章
Chrome插件开发入门:如何实现一键上班赖皮
查看>>
Anko 中使用 CardView 出现的坑
查看>>
移动端配适与掌握动态 REM
查看>>
【FFmpeg笔记】 从零开始之滤镜
查看>>
WebRTC录音功能 | 掘金技术征文
查看>>
FFmpeg常用命令
查看>>
js单击图片刷新验证码_无需整理
查看>>
spark streaming和kafka整合,保证数据exactly-once有且只被处理一次
查看>>
Linux用户、用户组、权限详解
查看>>
ubuntu下安装卸载mysql
查看>>
CentOS7.4 终端静默安装 Oracle 11g R2
查看>>
DPM 2010 备份操作
查看>>
Spring Boot自定义错误页面,Whitelabel Error Page处理方式
查看>>
Servlet 3.0 新特性详解
查看>>
记录这几天挖的一个坑
查看>>
UITableView深入解析 (一) 待续中...
查看>>
Mongo启动失败失败(2015-11-07 18:12:26)
查看>>
LVM是逻辑盘卷管理2
查看>>
oauth2.0 实现spring cloud nosession
查看>>
LVS之简单搭建LVS-DR(二)
查看>>