【问题标题】:Angular CSS Animation won't workAngular CSS 动画不起作用
【发布时间】:2013-07-11 04:03:53
【问题描述】:

我有一个从服务器动态检索存储消息的系统,它的视图是:

<div id= "messages" data-ng-controller="MessageController">
    <div class="message" data-ng-repeat="message in messages | orderBy:'timestamp':true" data-ng-animate="'animate-message'" >
            <div class="user">
                {{ message.user.username }}
            </div>
            <div class="title">
                {{ message.title }}
            </div>
            <div class="content" data-ng-bind-html-unsafe="message.content">
                {{ message.content }}
            </div>
    </div>
</div>

然后我的 CSS 文件中有:

.animate-message-enter {
    transition: 1s linear all;
    -moz-transition: 1s linear all;
    -webkit-transition: 1s linear all;
    -o-transition: 1s linear all;
    -ms-transition: 1s linear all;
    opacity:0;
    position:relative;
    left:-100%;
}

.animate-message-enter.animate-message-enter-active {
    opacity:1;
    left:0%;
}

(这只是一个极端的过渡示例,所以我可以看到过渡正在工作)

但是,当通过$scope.messages.push(response); 将新对象输入到数组中时,新消息只会弹出到页面上并且没有动画发生,有人知道我搞砸了什么吗?

谢谢:)

【问题讨论】:

  • 如果我没记错的话,转换简写的语法应该是all 1s linear。尝试修复它,如果它有效,让我。
  • 没有变化。仍然是相同的即时弹出。不过还是谢谢:)
  • css 看起来不错。可能是你的 orderBy - 拿出来看看会发生什么。
  • 啊.. 似乎我没有更新加载角度的文件以使用最新版本而不是没有动画的稳定版本。但是现在我只是偶尔会出现动画..

标签: css angularjs css-transitions


【解决方案1】:

尝试将您的代码复制粘贴到 plnkr 中,它工作正常。你有更多的代码吗?

http://plnkr.co/edit/gi6h3adNMfoXkUdiN4lY

我唯一添加的是一个简单的 addMessage 函数来测试转换。

<button ng-click="addMessage()">Add Message</button>

【讨论】:

  • 奇怪,对我来说,只有有时该页面上的项目才会过渡到……在 Firefox 22.0 / Windows 7 上
  • 我尝试了 Firefox 并遇到了同样的问题(之前使用的是 Chrome Canary)
  • 无论如何,谢谢你,证明错误是我的错。现在在我的网站上使用 chrome 可以正常工作。 :D
猜你喜欢
  • 2015-06-20
  • 2018-02-12
  • 1970-01-01
  • 2014-06-19
  • 2017-09-01
  • 1970-01-01
  • 2013-07-10
  • 2014-11-10
  • 2012-05-08
相关资源
最近更新 更多