【问题标题】:Replacing item in bound array renders it briefly without it替换绑定数组中的项目会在没有它的情况下短暂呈现它
【发布时间】:2015-03-22 11:37:06
【问题描述】:

我有一个包含艺术品图像的播放列表。当我单击一个时,旧的当前曲目正在取代它们。因此我替换了数组中的项目。

当 Ember 在很短的时间内重新渲染项目时,被替换的元素会消失。这会导致一切都重新定位的丑陋效果。

你可以在这里看到效果

这是我的简化控制器

import Ember from 'ember';

export default Ember.ArrayController.extend({

  playlist: null,
  currentTrack: null;
  actions: {
    replaceItem: function(){
      playlist.replace(index, 1, [self.get("currentTrack")])
    } 
  }
}

这是模板

{{#each song in playlist}}
  <div class="song" {{action "changeTrack" song}}>
    <img {{bind-attr src=song.artwork_url}} />
  </div>
{{/each}}

编辑:我创建了一个 JSFiddle,但 NOT 可以用普通的 jQuery http://jsfiddle.net/bhn8bko1/2/

重现我的问题

【问题讨论】:

    标签: jquery html css ember.js


    【解决方案1】:

    看起来选定的播放列表正在移动,然后在显示为当前播放列表之前逐渐变透明。因为它淡出你仍然可以通过它看到旧的播放列表,然后快速看到它切换。如果您将新的播放列表缩小到它开始时的大小而不是淡出到透明,您将看不到跳跃。它会在保持不透明的同时缩小尺寸,然后在幕后进行切换。

    旧的播放列表仍会在右侧“跳转出现”,但可能会通过淡入来软化。

    【讨论】:

    • 在淡出后它只是再次出现在原来的位置。然后发生替换。我做了一个 JSFiddle 并且无法重现那里的问题 jsfiddle.net/bhn8bko1/2 我已经尝试了淡入淡出,但它看起来仍然很糟糕。
    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2021-02-11
    • 2014-02-28
    • 2011-12-02
    相关资源
    最近更新 更多