Sự kết hợp của td{position: relative}
, chứa nguyên tố (<i>
) với transition
làm bảng nhấp nháy (biên giới và các nền) trong Chrome (Phiên bản 54.0.2840.71 m, cửa sổ 10) trình duyệt khi chuyển đổi qua lại 1, 2,3 trong đoạn dưới (biên giới, nền).Yếu tố chuyển đổi bên trong td tương đối làm cho bảng nhấp nháy
Đây có phải là hành vi mong muốn, lỗi hoặc nó có thể được giải quyết bằng một số css không?
(Tôi cần vị trí để có mặt ở đó từ mã khác cũng đang dựa vào nó)
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>
Tôi không thấy hoạt ảnh nào cả. –
không có hoạt ảnh, chỉ chuyển đổi thành phần tử 'a' – Terafor
@Terafor: Bất kỳ lý do cụ thể nào cho tất cả' bảng', tất cả 'tr' và tất cả' td' được đặt thành 'vị trí: tương đối;' ?? Loại bỏ điều đó và sẽ không có nhấp nháy. Xem này: https://jsfiddle.net/abhitalks/fg1gmcpe/ – Abhitalks