简而言之,我希望使用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>这是angular代码的一个片段:
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的顶部展开-我真的希望masonry能做它自己的事情,并重新排列其他div。
发布于 2015-01-16 00:12:03
尝试广播masonry.reload消息以获取angular-masonry以刷新布局。我遇到了一个半类似的问题,这似乎起作用了:https://stackoverflow.com/a/27967782/3191599
function refresh() {
common.$timeout(function () { $scope.$broadcast('masonry.reload'); }, 100);
}https://stackoverflow.com/questions/18510287
复制相似问题