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 】
相关推荐:
Internet Explorer官网直接进入 IE浏览器在线体验版网址
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
android nfc常用标签读取总结
如何用AWS免费套餐快速搭建高效网站?
nodejs redis 发布订阅机制封装实现方法及实例代码
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Python面向对象测试方法_mock解析【教程】
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
如何在宝塔面板创建新站点?
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
Laravel怎么为数据库表字段添加索引以优化查询
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
如何有效防御Web建站篡改攻击?
JavaScript常见的五种数组去重的方式
在Oracle关闭情况下如何修改spfile的参数
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
如何在云主机上快速搭建网站?
HTML 中动态设置元素 name 属性的正确语法详解
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何在Windows服务器上快速搭建网站?
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
如何利用DOS批处理实现定时关机操作详解
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
如何用西部建站助手快速创建专业网站?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
如何正确选择百度移动适配建站域名?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
太平洋网站制作公司,网络用语太平洋是什么意思?
Laravel中的withCount方法怎么高效统计关联模型数量
如何在腾讯云免费申请建站?
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何基于云服务器快速搭建网站及云盘系统?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
如何快速查询域名建站关键信息?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
详解vue.js组件化开发实践
北京的网站制作公司有哪些,哪个视频网站最好?

