canvas环境的保存和恢复及进度条实例

Canvas进阶

阴影

渐变

线性渐变

径向渐变

  • createRadiaGradient(x1, y1, r1, x2, y2, r2)
  • addColorStop()

把背景图片作为填充

  • createPattern(imgDom, repeate)
  • 第二个参数 repeate/ repeat-x / repeat-y / no-repeat

变换

缩放

  • sacle(x, y)

位移

  • translate(x, y)

旋转

  • rotate(angle)

环境的保存和恢复

  • save()
  • restore()

设置透明

  • globalAlpha = number 设置不透明度
  • 全局设置是对整个画布(绘图环境) 进行设置

限定绘图区域

  • clip()

输出base64编码

  • canvas.toDataURL(type, encoder)
  • type为mime类型 image/jpeg image/gif image/png image/webp

画布渲染画布

把一个画布以图片的形式用 drawImage() 插入到另一个画布
这是一种canvas的优化手段

设置线条

  • lineCap 属性 设置线条两端的形状 butt/round/square
  • lineJoin 属性 设置线条夹角 miter/bevel/round
  • miterLimit 属性 设置夹角斜角的最大长度 一般默认 10
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        html{
            overflow: hidden;
        }
        *{
            margin:0;
            padding:0;
        }
    </style>
</head>
<body>
    <canvas id="mycanvas">
        
    </canvas>
    <script type="text/javascript">
        var canvas = document.getElementById('mycanvas');
        canvas.width = 600;
        canvas.height = 600;
        canvas.style.border = "1px solid #ccc";

        var cxt = canvas.getContext("2d");

        cxt.fillStyle = "green";
        //声明开始坐标
        var x = 10
        //设置定时函数
        var run =setInterval(function(){
            //填充矩形
            cxt.fillRect(50,110,x,20);
            //进度条X轴增加
            x+=1;
            if (x>500) {
            //清除定时函数    
                clearInterval(run);
            }
        },5)
    </script>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 3,979评论 3 40
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,756评论 2 32
  • 【canvas】 《2.6.5 面向对象基础复习补充:》 创建对象的方式: * var o = { name: '...
    夜幕小草阅读 402评论 0 0
  • 本文首发于我的个人博客:http://cherryblog.site/github项目地址:https://git...
    sunshine小小倩阅读 2,039评论 1 8
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    J_L_L阅读 1,569评论 0 4