小编Tim*_*sch的帖子

流星动画

我正在尝试实现一个动画,其中一个项目在被选中后动画到左边.以下代码有效.但只有大约80%的时间.

JS

//myItem
Template.myItem.rendered = function(){
  if(Session.get("selected_item") === this.data._id){
    $(this.firstNode).addClass("selected");
  } else {
    $(this.firstNode).removeClass("selected");
  }
};

Template.myItem.events({
  "click .myItem": function(evt, template){
    Session.set("selected_item", this._id);
  }
});


//myItemList
Template.myItemList.helpers({
  items: function(){
    return Items.find();
  }
});
Run Code Online (Sandbox Code Playgroud)

模板

<template name="myItem">
  <div class="myItem">{{name}}</div>
</template>

<template name="myItemList">
  {{#each items}}
    {{> myItem}}
  {{/each}}
</template>
Run Code Online (Sandbox Code Playgroud)

CSS

.myItem { transition: all 200ms 0ms ease-in; }
.selected { left: -20px; }
Run Code Online (Sandbox Code Playgroud)

我还试图将代码包装成一个Meteor.defer(),以确保所有内容都准备好做动画.

Template.myItem.rendered = function(){
  Meteor.defer(function() {
    if(Session.get("selected_item") === this.data._id){
      $(this.firstNode).addClass("selected");
    } else {
      $(this.firstNode).removeClass("selected");
    }
  });
}; …
Run Code Online (Sandbox Code Playgroud)

javascript css animation exception meteor

7
推荐指数
1
解决办法
1262
查看次数

标签 统计

animation ×1

css ×1

exception ×1

javascript ×1

meteor ×1