首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ember:如何在视觉上更好地移除元素?

Ember:如何在视觉上更好地移除元素?
EN

Stack Overflow用户
提问于 2016-03-04 16:01:29
回答 1查看 536关注 0票数 1

您好,有没有一种方法可以使用纯CSS在移除组件/元素时使用淡出?目前,删除发生得如此之快,最终用户很难看到实际发生了什么。

例如,我有这个淡入的代码。它很容易添加,而且您不需要更改任何脚本逻辑。

代码语言:javascript
复制
{{#each dataContainer as |data|}}
       <div class="panel custom-panel fade-in">
             xx
           <button class="remove" {{action "Remove"}}> Delete </button>
       </div>
{{/each}} 


.fade-in{
  animation: fadeIn 1s;
}

@keyframes fadeIn {
    from {
        background-color: #fff7c0;
        opacity:0;
    }
    to {
        background-color: white;
        opacity:1;
    }
}

理想情况下,它应该写成这样

代码语言:javascript
复制
{{#each items as |item|}}
    {{#fade-component}}
       {{content-component}}
    {{/fade-component}}
{{/each}} 

和fade-c会有

代码语言:javascript
复制
willAnimateIn : function () {
        this.$().css("opacity", 0);
    },
​
    animateIn : function (done) {
        this.$().fadeTo(500, 1, done);
    },
​
    animateOut : function (done) {
        this.$().fadeTo(500, 0, done);
    }

我尝试自己的方式(这正是我想忽略的事情,更改删除代码)

代码语言:javascript
复制
$('.remove.btn').click(function() { 
      $(this).closest('.fade-in').addClass('fade-out')   
});



 removeRecord: function(wrappedRecord) {
        Ember.run.later((function() {
            xx
        }), 500);
    }
EN

回答 1

Stack Overflow用户

发布于 2016-03-07 16:27:44

好吧,我已经想出了这样的东西

首先,使用fade-elements组件包装内容

代码语言:javascript
复制
    {{#each wrappedRecords as |record|}}
        {{#fade-elements}}
                    <span class="custom-fade-in">
                        {{record.name}}
                        <span class="remove" {{action "removeRecord" record}}></span>                            
                    </span>
       {{/fade-elements}}
  {{/each}}

fade-elements.hbs

代码语言:javascript
复制
{{yield}}

fade-elements.js

代码语言:javascript
复制
export default Ember.Component.extend({
    willDestroyElement : function () {
        var clone = this.$().clone();
        clone.children().removeClass('custom-fade-in') // Dont want clone to fade in
        this.$().parent().append(clone); // Parent.parent appends it outside of "ember view div"
        clone.fadeOut();
    },
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35790881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档