zoukankan      html  css  js  c++  java
  • CanvasRenderingContext2D.lineDashOffset

    https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/lineDashOffset

    CanvasRenderingContext2D.lineDashOffset 是 Canvas 2D API 设置虚线偏移量的属性,例如可以实现 “跑马灯“ 的效果。

    语法

    ctx.lineDashOffset = value;
    
    value
    偏移量是float精度的数字。 初始值为 0.0。

    示例

    使用 lineDashOffset 属性

    这是一段简单的代码片段,使用 lineDashOffset 属性绘制虚线。

    HTML

    <canvas id="canvas"></canvas>

    JavaScript

    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");
    
    ctx.setLineDash([4, 16]);
    ctx.lineDashOffset = 2;
    
    ctx.beginPath();
    ctx.moveTo(0,100);
    ctx.lineTo(400, 100);
    ctx.stroke();

    修改下面的代码并在线查看 canvas 变化:

    ctx.setLineDash([30, 5]);
    ctx.lineDashOffset = 1;
    
    ctx.beginPath();
    ctx.moveTo(0,100);
    ctx.lineTo(50, 100);
    ctx.stroke();

    “跑马灯”

    ”跑马灯“效果是一种动画技巧,经常出现在计算机绘图程序的选项工具中。 它能帮助用户根据图片背景动态变化的边界来区分选择的边界。

    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");
    var offset = 0;
    
    function draw() {
      ctx.clearRect(0,0, canvas.width, canvas.height);
      ctx.setLineDash([4, 2]);
      ctx.lineDashOffset = -offset;
      ctx.strokeRect(10,10, 100, 100);
    }
    
    function march() {
      offset++;
      if (offset > 16) {
        offset = 0;
      }
      draw();
      setTimeout(march, 20);
    }
    
    march();

    规范描述

    SpecificationStatusComment
    WHATWG HTML Living Standard
    CanvasRenderingContext2D.lineDashOffset
    Living Standard  

    浏览器兼容性

    FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
    Basic support (Yes) 7 (7) mozDashOffset
    27 (27)
    11 (Yes) (Yes)

    Gecko-specific 注解

    • 从 Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)开始, 实现了一个不标准的并且不赞成使用的属性 mozDashOffset 。 这个属性将来会被取消并移出, 请看bug 931643.。使用 lineDashOffset 替代。

    WebKit-specific 注解

    • 基于 WebKit- 的浏览器 (例如 Safari), 实现了一个不标准的并且不赞成使用的属性 webkitLineDashOffset。 使用 lineDashOffset 替代。

    参见

  • 相关阅读:
    mysql新建用户的方法
    工具网站
    如何做好站内锚文本?
    js 创建对象与继承
    js tips
    js作用域链 js没有块级作用域
    css
    instanceof
    问题
    传递,引用副本传递
  • 原文地址:https://www.cnblogs.com/jiangxiaobo/p/5989773.html
Copyright © 2011-2022 走看看