【问题标题】:Polymer Neon-Animation multiple finish listenersPolymer Neon-Animation 多完成监听器
【发布时间】:2015-07-15 02:40:07
【问题描述】:

我正在编写一个实现 Neon Animation 元素库的 Polymer 元素。我正在为我的元素实现 NeonAnimationRunnerBehavior 行为。特别是这个元素有多个动画(运行良好),每个动画结束时需要调用唯一的结束函数。

文档建议使用这样的监听器:

listeners: {
    // this event is fired when the animation finishes
    "neon-animation-finish": "imageFadeOutComplete"
},

如果您有一个动画回调,这将非常有用。但是我有一个用于悬停、离开悬停状态和单击(点击)我的元素的动画。我尝试探索 neon-animation-finish 事件,但每个动画似乎都是相同的。

所以,我的问题是:是否可以让每个动画在完成时调用不同的函数?

我希望它会是这样的:

....

animationConfig: {
    value: function() {
        return {
            "imageFadeOut": {
                name: "fade-out-animation",
                node: this.$.image,
                complete: "imageFadeOutComplete"
            },
...

但是,这行不通。

【问题讨论】:

    标签: javascript polymer polymer-1.0


    【解决方案1】:

    playAnimation 接受第二个参数,该参数将作为详细信息传递给neon-animation-finish 事件处理程序,因此您可以执行以下操作:

    animateFadeIn: function() {
      this.playAnimation('imageFadeIn', 'imageFadeIn');
    },
    
    animateFadeOut: function() {
      this.playAnimation('imageFadeOut', 'imageFadeOut');
    },
    
    _animationFinish: function(e, animation) {
      switch(animation) {
        case 'imageFadeOut':
          ...
          break;
        case 'imageFadeIn':
          ...
          break;
      }
    }
    

    【讨论】:

    • 我看到它需要两个参数,但不知道如何实现它。这应该有效。
    • 第二个参数可以是任何类型。我正在传递一个事件处理程序然后调用的函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 2021-11-28
    相关资源
    最近更新 更多