Угловая кладка - расширение предмета
В двух словах, что я хочу достичь с помощью директивы Angular-masonry ( http://passy.github.io/angular-masonry/), примерно так: http://codepen.io/desandro/pen/htsui
Я пробовал несколько разных методов, но больший div просто распространяется поверх следующего div.
Это HTML:
<div class="row" ng-controller="DemoCtrl">
<div class="span12">
<div masonry >
<div class="masonry-brick" ng-repeat="brick in bricks">
<div ng-class="brick.cssClass" ng-click="changeBrick($index)">
<img ng-src="{{brick.src}}" alt="A masonry brick" >
<span>Here is a load of text to see what fits in here and such </span>
</div>
</div>
</div>
</div>
</div>
Это фрагмент углового кода:
app.controller('DemoCtrl', function ($scope, $timeout,$element) {
..
$scope.changeBrick= function changeBrick(i) {
$scope.bricks[i].cssClass = 'big';
$element.masonry();
$element.masonry('layout');
}
}
Стили как раз для тестирования:
.small{
width: 200px;
background-color: lime;
}
.big{
width: 400px;
background-color: red;
}
В тот момент, div просто распространяется прямо поверх верхней части следующего div - я действительно хочу, чтобы кладка сделала свое дело и переставила другие div.
1 ответ
Попробуйте транслировать masonry.reload
сообщение, чтобы получить угловую кладку, чтобы обновить макет. Я столкнулся с полусхожей проблемой, и это, кажется, работает: /questions/20210006/kak-ispravit-perekryivayuschiesya-kirpichi-s-pomoschyu-angular-masonry/20210016#20210016
function refresh() {
common.$timeout(function () { $scope.$broadcast('masonry.reload'); }, 100);
}