cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
76 lines (75 loc) • 1.98 kB
JavaScript
import Animator from "../../../zrender/lib/animation/Animator.mjs";
var animatableMixin = {
_animators: null,
getAnimators: function() {
this._animators = this._animators || [];
return this._animators;
},
animate: function(path, opts) {
this._animators = this._animators || [];
var el = this;
var target;
if (path) {
var pathSplitted = path.split(".");
var prop = el;
for (var i = 0, l = pathSplitted.length; i < l; i++) {
if (!prop) {
continue;
}
prop = prop[pathSplitted[i]];
}
if (prop) {
target = prop;
}
} else {
target = el;
}
if (target == null) {
throw new Error("Target " + path + " not exists");
}
var animators = this._animators;
var animator = new Animator(target, opts);
var self = this;
animator.during(function() {
if (self.__zr) {
self.__zr.refresh();
}
}).done(function() {
var idx = animators.indexOf(animator);
if (idx >= 0) {
animators.splice(idx, 1);
}
});
animators.push(animator);
if (this.__zr) {
this.__zr.animation.addAnimator(animator);
}
return animator;
},
stopAnimation: function(forwardToLast) {
this._animators = this._animators || [];
var animators = this._animators;
var len = animators.length;
for (var i = 0; i < len; i++) {
animators[i].stop(forwardToLast);
}
animators.length = 0;
return this;
},
addAnimatorsToZr: function(zr) {
if (this._animators) {
for (var i = 0; i < this._animators.length; i++) {
zr.animation.addAnimator(this._animators[i]);
}
}
},
removeAnimatorsFromZr: function(zr) {
if (this._animators) {
for (var i = 0; i < this._animators.length; i++) {
zr.animation.removeAnimator(this._animators[i]);
}
}
}
};
var animatableMixin$1 = animatableMixin;
export { animatableMixin$1 as default };