segment

A JavaScript library to draw and animate SVG path strokes

  • 所有者: lmgonzalves/segment
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Segment

A JavaScript library to draw and animate SVG path strokes.

See the DEMO.

Read this article to understand how it works.

Basic usage

HTML

Add the segment script, and define a path somewhere.

<script src="https://cdnjs.cloudflare.com/ajax/libs/segment-js/1.1.3/segment.js"></script>

<svg>
  <path id="my-path" ...>
</svg>

JavaScript

Initialize a new Segment with the path. Then draw a segment of stroke every time you want with: .draw(begin, end, duration, options).

var myPath = document.getElementById("my-path"),
    segment = new Segment(myPath);

segment.draw("25%", "75% - 10", 1);

Install with NPM

npm install segment-js

Constructor

The Segment constructor asks for 4 parameters:

  • path: DOM element to draw.
  • begin (optional, default 0): Length to start drawing the stroke.
  • end (optional, default 100%): Length to finish drawing the stroke.
  • circular (optional, default false): Allow begin and end values less than 0 and greater than 100%.

Method draw(begin, end, duration, options), Name, Type, Default, Description, ------------, ----------, ---------, -------------, begin, string, Path length to start drawing., end, string, 100%, Path length to finish drawing., duration, float, Duration (in seconds) of the animation., options, object, null, Options for animation in object notation., Note that begin and end can be negative values and can be written in any of these ways:

  • floatValue
  • percent
  • percent + floatValue
  • percent - floatValue

All possible options for draw method, Name, Type, Default, Description, ------------, ----------, ---------, -------------, delay, float, Waiting time (in seconds) to start drawing., easing, function, linear, Easing function (normalized). I highly recommend d3-ease., circular, boolean, false, If true, when the stroke reaches the end of the path it will resume at the beginning. The same applies in the opposite direction., callback, function, null, Function to call when the animation is done., Example

function cubicIn(t) {
    return t * t * t;
}

function done() {
    alert("Done!");
}

segment.draw("-25%", "75% - 10", 1, {delay: 0.5, easing: cubicIn, circular: true, callback: done});

Animating with another library

It's possible to animate the path stroke using another JavaScript library, like GSAP. Segments offers a method called strokeDasharray that is useful for this issue.
Here is an example using TweenLite (with CSSPlugin).

TweenLite.to(path, 1, { strokeDasharray: segment.strokeDasharray(begin, end) });

主要指標

概覽
名稱與所有者lmgonzalves/segment
主編程語言CSS
編程語言JavaScript (語言數: 3)
平台
許可證MIT License
所有者活动
創建於2015-10-24 02:01:10
推送於2018-01-31 20:21:23
最后一次提交2015-10-23 22:01:10
發布數1
最新版本名稱v1.0.0 (發布於 )
第一版名稱v1.0.0 (發布於 )
用户参与
星數1.7k
關注者數62
派生數99
提交數53
已啟用問題?
問題數11
打開的問題數2
拉請求數1
打開的拉請求數0
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?