javascript - polymer NEON 元素 - 使元素内的图像也触发动画

标签 javascript polymer polymer-1.0

开发页面

http://labs.recgr.com/polymer-dev/our_team.html

原始 Google Polymer 演示

https://elements.polymer-project.org/elements/neon-animation?view=demo:demo/index.html&active=neon-animated-pages

问题

点击开发页面上(圆形)容器内的(圆形)图像不会触发动画。

我的目标

当访问者点击图像本身时,触发 _onClick 方法(如 this page 的源代码所示)。

_onClick方法代码:

_onClick: function(event) {
  var target = event.target;
  var target_id = target.getAttribute('data-id');

  if (target.classList.contains('circle')) {
    // configure the page animation
    this.sharedElements = {
      'hero': target
    };

    var nodesToScale = [];
    var circles = Polymer.dom(this.root).querySelectorAll('.circle');
    for (var node, index = 0; node = circles[index]; index++) {
      if (node !== event.target) {
        nodesToScale.push(node);
      }
    }
    this.animationConfig['exit'][1].nodes = nodesToScale;

    this.fire('circle-click', {targetId: target_id});
  }
}

相关区域的屏幕截图

enter image description here

问题

这样做的正确方法是什么?

谢谢。

最佳答案

这对我有用:

<div class="horizontal layout">
  <div class="circle center-center horizontal layout" data-id="person1"><img src="https://idrycleaningi.com/image/nino/our_team/mich.jpg" data-id="person1" class="circle-image"></div>
  <div class="circle center-center horizontal layout" data-id="person2"><img src="https://idrycleaningi.com/image/nino/our_team/nino.jpg" data-id="person2" class="circle-image"></div>
  <div class="circle center-center horizontal layout" data-id="person3"><img src="https://idrycleaningi.com/image/nino/our_team/snowden.jpg" data-id="person3" class="circle-image"></div>
  <div class="circle center-center horizontal layout" data-id="person4"><img src="https://idrycleaningi.com/image/nino/our_team/bump.jpg" data-id="person4" class="circle-image"></div>
</div>

_onClick: function(event) {
  var target = event.target;
  var target_id = target.getAttribute('data-id');

  if (target.classList.contains('circle') || target.classList.contains('circle-image')) {
    // configure the page animation
    this.sharedElements = {
      'hero': target
    };

    var nodesToScale = [];
    var circles = Polymer.dom(this.root).querySelectorAll('.circle');
    for (var node, index = 0; node = circles[index]; index++) {
      if (node !== event.target) {
        nodesToScale.push(node);
      }
    }
    this.animationConfig['exit'][1].nodes = nodesToScale;

    this.fire('circle-click', {targetId: target_id});
  }
}

我所做的是将circle-image类添加到图像中,然后,我不仅检查circle类(来自Div),还允许circle-image 类(来自图像)。

关于javascript - polymer NEON 元素 - 使元素内的图像也触发动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32424975/

相关文章:

javascript - Firefox 中不显示 polymer 元素

dart - 通知聚合物列表项目更新的最佳方式

polymer - 有人知道或有 Polymer 的时间选择器吗?

javascript - 在 Knockout JS 中延迟加载

javascript - 在所有浏览器中打印使用 jsPDF 创建的 pdf

javascript - KendoUI 限制 SVG 和路径的尺寸

javascript - 在Polymer 2中进行递归和渲染

javascript - 如何将项目动态添加到纸质下拉菜单中?

javascript - 加速 FCKEditor

javascript - 声明函数触发 Polymer 元素中的事件的正确方法是什么?