I want banner to hide when user scroll downs. I took reference from Bind class toggle to window scroll event
I wanted to update a property in scope which I can use later to hide a banner.
Here is the code I have written: Ref: http://jsfiddle.net/8gYV4/
app = angular.module('myApp', []);
app.directive('ttlscrollhide', ['$window', function($window){
return {
link: function($scope, iElm, iAttrs) {
var height = iElm[0].offsetHeight;
angular.element($window).bind("scroll", function() {
console.log(this.pageYOffset);
if (this.pageYOffset >= height) {
$scope.banner.hide = false;
}
})
}
};
}]).controller('MyCtrl', ['$scope', function($scope) {
$scope.banner = {};
$scope.banner.src = "http://art.exhibition.touchtalent.com/ex-12_2.png";
$scope.banner.title = "Oho";
$scope.banner.hide = true;
$scope.toggle = function() {
if($scope.banner.hide == true) {
$scope.banner.hide = false;
} else {
$scope.banner.hide = true;
}
}
}]);
<div ng-controller="MyCtrl">
<div ttlscrollhide ng-show="banner.hide">
<img ng-src="{{banner.src}}">
</div>
<button ng-click="toggle()">Toggle</button>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
but its not updating the $scope variable. Whereas when I click on toggle button its working fine.