<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Canvas 通过改变渐变色渐变百分比位置做飞线效果</title>
</head><body><canvas id="myCanvas" width="700" height="700" style="border:1px solid #d3d3d3;">您的浏览器不支持 HTML5 canvas 标签。</canvas><canvas id="myCanvas2" width="700" height="700" style="border:1px solid #d3d3d3;">您的浏览器不支持 HTML5 canvas 标签。</canvas>    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script><script>$(function () {var myAction = {};$.extend(myAction, {getWidth: function (pointA, pointB) {var xWidth = (pointA.x - pointB.x) * (pointA.x - pointB.x);var yWidth = (pointA.y - pointB.y) * (pointA.y - pointB.y)var edgeWidth = Math.sqrt( xWidth + yWidth );return 100 / edgeWidth ;},initCanvas1: function () {var c = document.getElementById("myCanvas");var ctx = c.getContext("2d");var start = 0;var pointA = {x: 0,y: 100};var pointB = {x: 700,y: 100};    var width = myAction.getWidth(pointA, pointB);function auto() {ctx.beginPath();ctx.moveTo(0, 100);ctx.lineTo(700, 100);var grd = ctx.createLinearGradient(pointA.x, pointA.y, pointB.x, pointB.y);grd.addColorStop(0, "#5BC0DE");grd.addColorStop(start, "#5BC0DE");grd.addColorStop(start + (width / 2), "#ffff00");grd.addColorStop(start + width, "#5BC0DE");grd.addColorStop(1, "#5BC0DE");ctx.lineWidth = 5;ctx.strokeStyle = grd;ctx.stroke();console.log(start + width)ctx.closePath();  if (start + width + 0.02 >= 1) {start = 0;} else {start = start + 0.02;}setTimeout(function() {auto();}, 100);        }auto();                }, initCanvas2: function () {var c = document.getElementById("myCanvas2");var ctx = c.getContext("2d");var start = 0;var pointA = {x: 0,y: 0};var pointB = {x: 700,y: 700};      var width = myAction.getWidth(pointA, pointB);function auto() {ctx.beginPath();var grd = ctx.createLinearGradient(pointA.x, pointA.y, pointB.x, pointB.y);grd.addColorStop(0, "#5BC0DE");grd.addColorStop(start, "#5BC0DE");grd.addColorStop(start + (width / 2), "#ffff00");grd.addColorStop(start + width, "#5BC0DE");grd.addColorStop(1, "#5BC0DE");ctx.lineWidth = 5;ctx.strokeStyle = grd;ctx.moveTo(0, 0);ctx.lineTo(700, 700);   ctx.stroke();ctx.closePath();  if (start + width + 0.02 >= 1) {start = 0;} else {start = start + 0.02;}setTimeout(function() {auto();}, 100);        }auto();                }});var init = function () {myAction.initCanvas1();myAction.initCanvas2();}();});</script><script></script>
</body>
</html>

转载于:https://www.cnblogs.com/xutongbao/p/9924817.html

Canvas 通过改变渐变色渐变百分比位置做飞线效果相关推荐

  1. canvas绘制飞线效果

    在我们做的可视化大屏项目中,经常会遇到飞线的效果. 在我们的大屏编辑器中,可以通过拖拽+配置参数的方式很快就能够实现.下面是我们使用大屏编辑器实现的一个项目效果: 中间地图就有飞线的效果. 抛开编辑器 ...

  2. echarts切换飞线图未清空_echarts做飞线图

    飞线图 height:100%; } body{ height:100%; margin:0; padding:0; background-color:#2F4056; } const xhr= ne ...

  3. opencv 调整窗口大小_opencv改变imshow窗口大小,窗口位置的方法

    opencv改变imshow窗口大小,窗口位置的方法 如下所示: cv2.HoughLinesP cv2.namedWindow("enhanced",0); cv2.resize ...

  4. html 控件坐标定位,利用JS改变html控件位置

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 利用JS改变html控件位置 我想写一个贪吃蛇小游戏,所以需要完成蛇的自动移动效果,这就需要改变html控件位置.本来我 ...

  5. HTML5绘制渐变直线,如何使用HTML5 Canvas绘制动态线性渐变

    如果要使用HTML5 Canvas绘制线性渐变,需要用到createLinearGradient()方法.下面我们就来一起看看具体的内容. createLinearGradient() createL ...

  6. Canvas画图设置渐变色

    1.线形图设置填充色为渐变色方法: /*** Draws the provided path in filled mode with the provided drawable.** @param c ...

  7. swif 在字符串中查找特定字符索引以及改变字符串的指定位置的颜色 字体大小

    1 第一种方式 var text = "谁包含这个字母";let range:Range<String.Index> = text.range(of: "含& ...

  8. 放射性渐变色html,html5 canvas绘制放射性渐变色效果

    效果图展示: canvas有些地方还是有点坑的,比如fillRect是方法不是属性,如果写成fillRect=这样是没效果的,而且还不报错.... 这里用到了createRadialGradient这 ...

  9. Canvas如何设置一个渐变背景(支持从纯色切换到渐变,从渐变又切换到纯色)

    Canvas如何设置一个渐变背景(支持从纯色切换到渐变,从渐变又切换到纯色) Canvas背景设置 在开发中遇到一个需求:点击按钮切换canvas的背景,要求是从纯色到渐变,渐变到纯色.开发的时候发现 ...

  10. HTML5利用Canvas绘制图形(绘制渐变、模式、变换)

    绘制渐变 渐变是一种很普遍的视觉形象,能带来视觉上的舒适感.在Canvas中,绘图API提供了两个原生的渐变方法,包括线性渐变和径向渐变.渐变,在颜色集上使用逐步抽样的算法,可以应用的描边样式和填充样 ...

最新文章

  1. Cache Memory技术示例
  2. 大脑使用交叉存储,来区分现在和过去
  3. 《经济学人》也谈 Python:它会是我们的未来吗?
  4. 【视频课】模型部署课程更新!ncnn框架快速实践!
  5. Linux 平台 C/C++ 代码中设置线程名
  6. 关联矩阵古林法的matlab代码,[转载][原创]灰色关联分析及Matlab程序实现
  7. JS 限制input框的输入字数,并提示可输入字数
  8. Linux下的xml文件的创建
  9. python虚拟环境解决不能执行脚本的问题
  10. 比较(0,π/2]上对sinx/x的定积分、对x/sinx的定积分与1的大小关系
  11. python循环结构高一信息技术_2019-2020学年度高一信息技术期末考试明白纸
  12. Zemax操作--7(坐标断点)
  13. Centos8Web服务器搭建
  14. C# excel转换PDF 包括所有sheet
  15. Java虚拟机部分知识点
  16. Linux下的桥接模式
  17. Git命令的使用(进阶版)
  18. 盘点 35 个 Apache 顶级项目,我拜服了…
  19. /etc/fstab文件详解
  20. Java练习——牛客网天才问题

热门文章

  1. java案例代码4-数组的复制
  2. java deadlock oracle_【DEADLOCK】Oracle“死锁”模拟
  3. 项目管理工具_项目管理工具MS Project使用经验分享
  4. 原生JS大揭秘—原型链
  5. 白话文:几个例子马上看懂typescript基础类型
  6. 安装Firefly错误-Unable to find vcvarsall.bat
  7. BLOB存储图片文件二进制数据是非对错
  8. MYSQL查询重复记录的方法
  9. vs2010使用svn--浅谈AnkhSvn
  10. windows7+fedora16双系统安装