0

我在同一个容器内有一个地图和一个列表,设置了 2:5 的弹性比率。我希望能够在地图上切换双击以最大化它以填充容器或将其重置回原始大小,具体取决于列表是否隐藏。我编写了下面的函数并将其绑定到地图的 dblclick 事件。我看到它进入了这个函数,但它对我看到的没有影响。任何想法为什么我的列表不会动画和隐藏?

google.maps.event.addListener(that.getMap(), 'dblclick', function () {
      var list = Ext.ComponentQuery.query('#BuildingList')[0];
      var height = list.getHeight();
      if (list.isHidden()) {
          list.show(Ext.Anim({
              easing: 'easeInOut',
              duration: 1000,
              autoClear: false,
              from: {
                  opacity: 0,
                  height: '0px'
              },
              to: {
                  opacity: 1,
                  height: list.getHeight() + 'px'
              }
          }));
      } else {
          list.hide(Ext.Anim({
              easing: 'easeInOut',
              duration: 1000,
              autoClear: false,
              from: {
                  opacity: 1,
                  height: list.getHeight() + 'px'
              },
              to: {
                  opacity: 0,
                  height: '0px'
              }
          }))
      }
  });
4

1 回答 1

0

我发现做这种事情的最好方法是在 dblclick 事件中将 flex 设置为列表的 0(我必须将其作为覆盖添加到地图中),如下所示:

       that.addAfterListener('dblclick', function (view, map, zoomlevel, eOpts) {
           var list = view.getParent().down('buildings');
           Ext.Anim.run(list, 'fade', {
               easing: 'easeInOut',
               autoClear: false,
               duration: 300,
               after: function () {
                   list.setFlex(0);
               }
           });
       });
于 2013-05-03T16:40:31.493 回答