Имам директива, която използвам като атрибут. Директивата добавя и премахва клас, което задейства css анимация, за да избледнее div навътре и навън. Имам това на няколко места на моята страница; обаче, след като първият div вземе стойността, останалите div (които не се виждат) също вземат стойността. Как да накарам тези директиви да работят независимо?
Директива:
.directive("scroll", function ($window) {
return function (scope, element, attrs) {
function getScrollOffsets(w) {
// Use the specified window or the current window if no argument
w = w || window;
// This works for all browsers except IE versions 8 and before
if (w.pageXOffset != null) return {
x: w.pageXOffset,
y: w.pageYOffset
};
}
angular.element($window).bind("scroll", function (e) {
var offset = getScrollOffsets($window);
if (offset.y >= 10) {
e.preventDefault();
e.stopPropagation();
element.removeClass('not-in-view');
element.addClass('in-view');
} else {
e.preventDefault();
e.stopPropagation();
element.removeClass('in-view');
element.addClass('not-in-view');
}
scope.$apply();
});
};
});
HTML:
<div class="sidebar col-md-4" scroll>
<h1>Content</h1>
</div>
<div class="sidebar col-md-4" scroll>
<h1>More Content</h1>
</div>