js canvas实现QQ拨打电话特效
发布时间 - 2026-01-11 01:03:18 点击率:次首先呢,先给特效。自己找手机录的,有点不清楚,请见谅!
本来是打算做 腾讯的贝塞尔曲线下拉刷新图。然后和朋友打了个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();
}
/*正弦曲线可表示为y=Asin(ωx+φ)+k,定义为函数y=Asin(ωx+φ)+k在直角坐标系上的图象,*/
/*绘制sin正弦图像*/
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变量名是按照安卓绘图的习惯来的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# canvas
# QQ拨打电话
# js如何调用qq互联api实现第三方登录
# JS判断客服QQ号在线还是离线状态的方法
# js仿QQ中对联系人向左滑动、滑出删除按钮的操作
# javascript仿qq界面的折叠菜单实现代码
# js QQ客服悬浮效果实现代码
# 用js实现QQ在线查询功能
# 是从
# 上至
# 中心点
# 腾讯
# 不清楚
# 要注意
# 在对
# 要对
# 看一下
# 需要注意
# 大家多多
# 先给
# 塞尔
# 每一刻
# 变量名
# 偏移量
# 打了个
# 然后就
# 注意了
# id
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
javascript中的try catch异常捕获机制用法分析
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何利用DOS批处理实现定时关机操作详解
利用JavaScript实现拖拽改变元素大小
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
海南网站制作公司有哪些,海口网是哪家的?
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
长沙做网站要多少钱,长沙国安网络怎么样?
Laravel如何创建自定义Facades?(详细步骤)
bing浏览器学术搜索入口_bing学术文献检索地址
如何快速搭建高效可靠的建站解决方案?
Laravel如何记录自定义日志?(Log频道配置)
Swift中switch语句区间和元组模式匹配
详解Huffman编码算法之Java实现
打造顶配客厅影院,这份100寸电视推荐名单请查收
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
如何确保FTP站点访问权限与数据传输安全?
BootStrap整体框架之基础布局组件
大同网页,大同瑞慈医院官网?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
C++用Dijkstra(迪杰斯特拉)算法求最短路径
网站制作免费,什么网站能看正片电影?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
如何在Windows环境下新建FTP站点并设置权限?
使用spring连接及操作mongodb3.0实例
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
Laravel如何实现API版本控制_Laravel版本化API设计方案
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
C++时间戳转换成日期时间的步骤和示例代码
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何在云主机上快速搭建网站?
php json中文编码为null的解决办法
bootstrap日历插件datetimepicker使用方法
做企业网站制作流程,企业网站制作基本流程有哪些?
SQL查询语句优化的实用方法总结
如何在香港服务器上快速搭建免备案网站?
Laravel如何实现数据库事务?(DB Facade示例)
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
如何确认建站备案号应放置的具体位置?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】

