UNPKG

rc-tween-one

Version:
41 lines (34 loc) 1.39 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _tweenFunctions = require('tween-functions'); var _tweenFunctions2 = _interopRequireDefault(_tweenFunctions); var _util = require('./util'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _tweenFunctions2['default'].path = function (_path, _param) { var param = _param || {}; if (_util.windowIsUndefined) { return 'linear'; } var pathNode = (0, _util.parsePath)(_path); var pathLength = pathNode.getTotalLength(); var rect = param.rect || 100; // path 的大小,100 * 100, var lengthPixel = param.lengthPixel || 200; // 线上取点像素,默认分为 200 段。。 var points = []; for (var i = 0; i < lengthPixel - 1; i++) { points.push(pathNode.getPointAtLength(pathLength / (lengthPixel - 1) * i)); } points.push(pathNode.getPointAtLength(lengthPixel)); return function path(t, b, _c, d) { var p = _tweenFunctions2['default'].linear(t, b, _c, d); var timePointX = rect * p; // X 轴的百分比; // 取出 x 轴百分比上的点; var point = points.filter(function (item) { return item.x >= timePointX; })[0] || pathNode.getPointAtLength(p * pathLength); return 1 - point.y / rect; }; }; exports['default'] = _tweenFunctions2['default']; module.exports = exports['default'];