【发布时间】:2017-03-16 20:10:49
【问题描述】:
td{position: relative},包含元素 (<i>) 与 transition 的组合使 Chrome(版本 54.0.2840.71 m,Windows 10)浏览器中的表格闪烁(边框和背景)切换时1,2,3 in sn-p 下面(边框,背景)。
这是期望的行为、错误还是可以通过一些 css 解决?
(我需要位置,因为其他代码也依赖它)
var app = angular.module('app', []);
app.controller('testCtrl', function($scope) {
$scope.bodys = [1, 2, 3];
});
table,
tr,
td {
position: relative;
}
td{
border-top: 1px solid darkgreen !important;
}
table {
table-layout: fixed;
}
.glyphicon-chevron-right {
transition: transform .3s;
cursor: pointer;
}
.toggled {
transform: rotate(90deg);
}
.odd {
background: lightgreen;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<body ng-app="app">
<table ng-controller="testCtrl" class="table">
<tbody ng-repeat="b in bodys">
<tr ng-class-even="'odd'">
<td>{{b}}</td>
<td>
<a href="" ng-click="toggled = !toggled">toggle <i class="glyphicon glyphicon-chevron-right" ng-class="{'toggled': toggled}"></i></a>
</td>
<td></td>
</tr>
<tr ng-if="toggled" ng-class-even="'odd'">
<td>{{b + 100}}</td>
<td></td>
<td></td>
</tr>
<tr ng-if="toggled" ng-class-even="'odd'">
<td>{{b + 200}}</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</body>
【问题讨论】:
-
我根本看不到动画。
-
没有动画,只有
a元素上的过渡 -
@Terafor:有什么特别的原因所有
table、所有tr和所有td都设置为position: relative;??删除它,将不会有闪烁。看到这个:jsfiddle.net/abhitalks/fg1gmcpe -
@Abhitalks 不质疑原因,请提供解决方案/解释到位的问题
-
@Terafor:我不是质疑。我在问。我这样做是因为理解这一点很重要,以便能够产生一个好的解决方案。我认为寻求澄清很重要。休息由你决定。
标签: html css angularjs google-chrome twitter-bootstrap-3