Я создаю сетку элементов и накладываю эффект наведения с использованием переходов CSS для каждого элемента. Я хотел бы добавить вторичные эффекты для смежных элементов оси x и y, создавая эффект облака. Я предполагаю, что я буду ссылаться на эти элементы, используя методы jQuery next()
и prev()
, или $ index и $ parent. $ Index.Динамически добавлять классы в смежные элементы на mouseenter
Площадь сетки будет достаточно большой, чтобы предотвратить обертывание строк (с использованием отрицательных полей и скрытого переполнения).
Вот упрощенный пример моего повтора:
<div class="activity-thumb-row" ng-repeat="i in getNumArray(20) track by $index">
<div class="activity-thumb"
ng-class="{'adjacent': adjacent}"
ng-repeat="j in getNumArray(30) track by $index"
ng-mouseenter="highlightActivities()">
</div>
</div>
И функция в контроллере (я понимаю, не может быть лучшим подходом):
$scope.highlightActivities = function() {
$(this).next().adjacent = true;
$(this).prev().adjacent = true;
}
Как ориентировать элементы рядом с зависающим элементом, используя ng-класс (или что-то еще) внутри ng-repeat?
Для справки, вот некоторые связанные обсуждения:
- Change class on mouseover in directive
- Angular js ng repeat with conditional ng class not applying css class
- ng-mouseover and leave to toggle item using mouse in angularjs
Это тоже выглядит хорошо. Тем не менее, я не буду следовать за вами по поводу удаления класса. Это уже происходит в вашей демонстрации. – isherwood
, только если вы выйдете из родителя с одного из ребер – charlietfl