Ich habe eine if-Anweisung, die prüft, ob eine Variable wahr oder falsch ist und ein Mausrad-Ereignis bindet, und ich habe ein Bildlaufereignis, das diese Variable auf true setzt. Das Problem ist, dass meine if-Bedingung nur beim Laden triggered wird, nicht wenn der Wert sich in true ändert.Wenn keine Bedingung ausgelöst wird
Codebeispiel innen Controller:
$scope.first = angular.element(document.querySelector('#first'));
$scope.second = angular.element(document.querySelector('#second'));
$scope.firstActive = true;
$scope.secondActive = false;
angular.element($window).bind("scroll", function() {
var scrollTop = angular.element($window).scrollTop();
var firstO = $scope.first.offset().top;
var secondO = $scope.second.offset().top;
var firstDistance = (scrollTop - firstO);
var secondDistance = (scrollTop - secondO);
if (firstDistance < 600) {
$scope.firstActive = true;
$scope.secondActive = false;
}
if (secondDistance >= 0) {
$scope.firstActive = false;
$scope.secondActive = true;
}
});
if ($scope.secondActive) {
html.css('overflowY', 'hidden');
whatIDo.css('display', 'block');
angular.element(whatIDo).bind("mousewheel", function (e) {
if (e.originalEvent.wheelDelta < 0) {
//scroll down
console.log('Down');
$scope.secondSlide = true;
$scope.firstSlide = false;
whatIDo.css('display', 'none');
html.css('overflowY', 'auto');
} else {
//scroll up
console.log('Up');
$scope.secondSlide = false;
$scope.firstSlide = true;
whatIDo.css('display', 'none');
html.css('overflowY', 'auto');
}
$scope.$apply();
});
}
Was will ich Mausrad auf einem Overlay auslösen erreichen ist, und schalten Inhalt (erste Folie und die zweite Folie), dann weiter Seite blättern. Aber meine if-Anweisung wird nicht ausgelöst, obwohl die Variable auf "true" gesetzt ist.