iLe*_*ing 14 angularjs ng-animate
我正在玩最近添加的angular.js动画功能,这不能按预期工作
<style>
.myDiv{
width:400px;
height:200px;
background-color:red;
}
.fadeIn-setup,.fadeOut-setup {
-webkit-transition: 1s linear opacity;
-moz-transition: 1s linear opacity;
-o-transition: 1s linear opacity;
transition: 1s linear opacity;
}
.fadeIn-setup{
opacity:0;
}
.fadeOut-setup{
opacity:1;
}
.fadeIn-setup.fadeIn-start {
opacity: 1;
}
.fadeOut-setup.fadeOut-start{
opacity:0;
}
</style>
<div ng-app>
<div ng-controller='ctrl'>
<input type='button' value='click' ng-click='clicked()' />
<div ng-show="foo == true" class='myDiv' ng-animate="{show: 'fadeIn', hide:'fadeOut'}">
</div>
</div>
</div>
function ctrl($scope){
$scope.foo = false;
$scope.clicked = function(){
$scope.foo = !($scope.foo);
}
}
Run Code Online (Sandbox Code Playgroud)
它会破坏myDiv dom.ready并开始消失.而它最初应该被隐藏.如何解决?
小智 40
到目前为止1.2.22仍然存在这个问题.但是,其中一种解决方案很容易解决.
在尝试了这里提到的所有解决方案之后,我想特别强调cocoggu对ac360的建议,因为它是迄今为止最简洁的并且它"正常工作".
正如他所建议的那样,只需将ng-hide类添加到违规元素即可立即解决问题. - 它可以防止初始动画故障并允许所有后续动画按预期运行.
工作解决方案感谢cocoggu
<div id="offending-element" class="ng-hide"></div>
orj*_*jan 10
我找到了2种不同的解决方案来解决您的问题
最简单的解决方案:为div style ="display:none"添加内联样式
另一个解决方案是使用ng-class ="state"向div添加一个初始类, 并在单击该按钮时重置该类
function ctrl($scope){
$scope.state = 'hide';
$scope.foo = false;
$scope.clicked = function() {
$scope.state = undefined;
$scope.foo = !($scope.foo);
}
}
Run Code Online (Sandbox Code Playgroud)
连同以下css:
.hide {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
我想我会使用第一个也是最简单的解决方案
mat*_*sko -1
现在这个问题已经得到解决。升级到1.1.5。
| 归档时间: |
|
| 查看次数: |
11665 次 |
| 最近记录: |