jquery - 替换绑定(bind)数组中的元素会在没有它的情况下短暂呈现它

标签 jquery html css ember.js

我有一个包含艺术品图像的播放列表。当我点击其中一个时,旧的当前轨道将取代它们。因此我替换了数组中的元素。

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

这里可以看到效果

这是我简化的 Controller :

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,但不能用纯 jQuery 重现我的问题 http://jsfiddle.net/bhn8bko1/2/

最佳答案

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

旧的播放列表仍会“跳转”出现在右侧,但这可能会随着淡入而减弱。

关于jquery - 替换绑定(bind)数组中的元素会在没有它的情况下短暂呈现它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29193861/

相关文章:

css - 建议在 CSS 中键入颜色的名称而不是其十六进制值?

javascript - AngularJS - 如何计算输入字段值

javascript - 为什么更改父类为空输入?

html - 像 StackOverflow 一样的响应式导航栏

html - Textarea 不填充父 div 的高度

ios - 媒体查询和视口(viewport)宽度 - 良好的 CSS 修复在 iPad 上不起作用

javascript - TypeScript $(...).tooltip 不是函数

php - Ajax/jquery 如何在不刷新页面的情况下从按钮单击发送数据

php - 如何在从数据库检索的表中使用单选按钮并将值存储在另一个表中

css - div 中的图像对齐