当前位置: 首页 » 产品 » 商务广告 » 正文

js canvas实现QQ拨打电话特效教程

放大字体  缩小字体 发布日期: 2024-11-28 23:32   来源:http://www.baidu.com/  作者:无忧资讯  浏览次数:24
核心提示:首先呢,先给特效。自己找手机录的,有点不清楚,请见谅!本来是打算做 腾讯的贝塞尔曲线下拉刷新图。然后和朋友打了个QQ电话,

首先呢,先给特效。自己找手机录的,有点不清楚,请见谅!

js canvas实现QQ拨打电话特效教程 三联

本来是打算做 腾讯的贝塞尔曲线下拉刷新图。然后和朋友打了个QQ电话,稍微注意了一下未接通时候的动画。然后就想着实现以下。

这里要注意的就是:

canvas的中心点经过变化到canvas的正中后
canvas的 Y轴由上至下 是从(-,+);而数学坐标系的Y轴由上至下 是从(+,-)的。

首先看一下html代码。就至少简单的添加一个canvas,基本没进行其他操作。

HTML代码

<canvas id="canvas1" width="500" height="500"></canvas>

JS代码

var paint, r; //设置画笔和半径 var width, height; //获得canvas的长度和宽度 var count=0; //设置正铉曲线的便宜量 var colors=["#66ccff", "#ff0000"]; function main() { var canvas1=document.getElementById("canvas1"); paint=canvas1.getContext("2d"); width=paint.canvas.width; height=paint.canvas.height; r=width / 2; start(); setInterval(start, 200); } function start() { paint.clearRect(0, 0, width, height); drawXY(); drawSin(); paint.restore(); } function drawXY() { paint.save(); paint.translate(r, r); paint.beginPath(); paint.lineWidth=1; paint.moveTo(0, -r); paint.lineTo(0, r); paint.stroke(); paint.lineWidth=1; paint.moveTo(-r, 0); paint.lineTo(r, 0); paint.stroke(); } function drawSin() { paint.save(); count++;//设置每一刻的偏移量 var i, j, rad, y; for (j=0; j < 2; j++) { for (i=-1000; i < 1000; i++) { paint.beginPath(); paint.strokeStyle=colors[j]; rad=i * Math.PI / 180; y=-20 * Math.sin(rad - (count + j)); paint.arc(i, y, 0.3, 0, 2 * Math.PI, false); paint.stroke(); } } paint.restore(); }

JS中需要注意的就是。在对图像进行计时改变的时候,一定要的先进行清除。之后要对绘制过的图像进行保存和恢复。不然程序会出现重叠或者无法显示等bug。

这里定义的paint变量名是按照安卓绘图的习惯来的。

 
 
[ 产品搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

 

 
推荐图文
推荐产品
点击排行
    行业协会  备案信息  可信网站