canvas 悬浮效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<canvas id="bubble"></canvas>
<script type="text/javascript">
var canvas = document.getElementById('bubble');
var w = window.innerWidth;
var h = window.innerHeight
canvas.width=w;
canvas.height=h;
window.onresize=function(){
w = window.innerWidth;
h = window.innerHeight
canvas.width=w;
canvas.height=h;
}
var canCon=canvas.getContext('2d');
// var y=100,x=100;
// setInterval(function(){
// canCon.clearRect(0,0,w,h);
// canCon.beginPath();
// canCon.fillStyle='red';
// canCon.arc(200,y++,100,0,Math.PI*2)
// canCon.fill();
// },1000/60); function random(min,max){
return Math.random()*(max-min)+min;
}
var colorArray = ['#e08031','#c7ceb2','#199475','#0b6e48','#044d22'];
function Bubble(){};
var bubble =new Bubble();
Bubble.prototype={//定义属性
init:function(){//所有泡泡的基本零件
this.x=random(0,w);//浏览器的最左边到最右边
this.y=random(0,h);//浏览器的最左边到最右边
this.r=random(0,2);//http://www.peise.net/颜色
this.color=colorArray[Math.floor(random(0,5))];
this.xr=random(-1,1);
this.yr=random(-1,1);
this.D=50;
},
draw:function(){
canCon.beginPath();
canCon.fillStyle=this.color;
canCon.arc(this.x,this.y,this.r,0,Math.PI*2)
canCon.fill();
},
update:function(){
this.x+=this.xr;
this.y+=this.yr;
if(this.x-this.r<0 || this.x+this.r>w){
this.xr = -this.xr;
}else if(this.y-this.r<0 || this.y+this.r>h){
this.yr = -this.yr;
}
this.xD= (positionX-this.x<0)?-(positionX-this.x):(positionX-this.x); //小球和鼠标的位置距离
this.yD= (positionY-this.y<0)?-(positionY-this.y):(positionY-this.y); //小球和鼠标的位置距离
if(this.xD<this.D&&this.yD<this.D){
this.r+=1;
if(this.r>100){this.r=100};
}else if(this.r>4&&this.xD>this.D&&this.yD>this.D){
this.r-=1;
}
this.draw();
}
} var bublleArray = [];
function create(){
var bubble =new Bubble();//shengcheng
bubble.init();//小泡泡的样子
bubble.draw();
bublleArray.push(bubble);//一出生就保存
}
for(var i=0;i<10000;i++){
create();
}
setInterval(function(){
canCon.clearRect(0,0,w,h);
for(var b of bublleArray){
b.update();
}
},1000/60);
var positionX,positionY;
canvas.onmousemove=function(){
var ev = ev || window.event;
positionX=ev.clientX;
positionY=ev.clientY;
positionX=ev.clientX;
}
//春函数就是只进行计算
</script>
</body>
</html>
canvas 悬浮效果的更多相关文章
- 使用Three.js实现神奇的3D文字悬浮效果
声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 背景 在 Three.js Journey 课程示例中,提供了一个使用 Thre ...
- CodePen 作品秀:Canvas 粒子效果文本动画
作品名称——Shape Shifter,基于 Canvas 的粒子图形变换实验.在页面下方的输入框输入文本,上面就会进行变换出对应的粒子效果文本动画. CodePen 作品秀系列向大家展示来自 Cod ...
- Android 仿美团网,大众点评购买框悬浮效果之修改版
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...
- 纯CSS实现的右侧底部简洁悬浮效果
我们见过很多页面右侧浮动效果,最早有QQ联系面板,对联广告等,大多数都是基于Javascript实现的动态效果,今天我给大家分享一个只需要CSS结合DIV实现的右侧浮动效果. HTML 我们希望悬浮效 ...
- HTML5 Canvas动画效果演示
HTML5 Canvas动画效果演示 主要思想: 首先要准备一张有连续帧的图片,然后利用HTML5 Canvas的draw方法在不同的时间 间隔绘制不同的帧,这样看起来就像动画在播放. 关键技术点: ...
- Android对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...
- HTML5 Canvas动画效果演示 - 流浪的鱼 - 博客频道 - CSDN.NET
HTML5 Canvas动画效果演示 - 流浪的鱼 - 博客频道 - CSDN.NET HTML5 Canvas动画效果演示
- HTML5 Canvas动画效果实现原理
在线演示 使用HTML5画布可以帮助我们高速实现简单的动画效果.基本原理例如以下: 每隔一定时间绘制图形而且清除图形,用来模拟出一个动画过程,能够使用context.clearRect(0, 0, x ...
- 如果去掉UITableView上的section的headerView和footerView的悬浮效果
项目需要cell的间距,又不需要悬浮效果,百度之后找到这个方法,记录一下,备忘. 用UIScrollView的代理方法实现 - (void)scrollViewDidScroll:(UIScrollV ...
随机推荐
- linux firewalld 防火墙操作命令
查看防火墙的状态systemctl status firewalldTomcat默认使用8080端口,如果防火墙开启,需要开通8080端口firewall-cmd --zone=public --ad ...
- Matplotlib数据可视化(7):图片展示与保存
In [1]: import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as ...
- 解决 unable to lock the administration directory (/var/lib/dpkg/) 问题
阿里开源镜像站提供了raspbian的软件包镜像,国内的用户可以选择改用阿里镜像站作为更新源. 但是在更换源之后,执行 sudo apt-get update && apt-get u ...
- Antd 表格内通过rowClassName实现隔行变色的显示方法(转载)
ant design中 table组件很方便,在项目中遇到了需要实现奇偶行颜色不同以方便阅读的功能,主要用到了rowClassName这一api,通过判断index的奇偶来实现不同的样式分配. row ...
- 学习Docker的记录
一.下载Docker for Windows 与 安装教程 参考文档一步一步的来学习 文档1 文档2 二.Docker的常用命令介绍 docker run -it --rm -p 80 ...
- Javaweb编程
首先是题目要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分) 3性别:要 ...
- Natas7 Writeup(任意文件读取漏洞)
Natas7: 页面出现了两个选项,点击后跳转,观察url发现了page参数,猜测可能存在任意文件读取漏洞. 且源码给了提示,密码在/etc/natas_webpass/natas8 中. 将/etc ...
- [ctfhub]SQL注入
今天在ctfhub整理了几个sql注入的解题过程,还算是比较详细的. 知识点都是比较常见的:每个题大致涉及的知识点用一张表格解释 !注:下方的 information_schema.xxxxxxxxx ...
- 手动实现AJAX
AJAX 每日更新前端基础,如果觉得不错,点个star吧
- JWT签发token
目录 一. 认证的发展历程简介 二. JWT签发Token源码分析 2.1 JWT工作原理及简介 2.2 JWT生成token源码分析 返回目录 一. 认证的发展历程简介 这里真的很简单的提一下认证的 ...