从AngularJS指令更改body css样式属性
我是AngularJS的新手,在window scroll上做了一个指令,用来修改从AngularJS指令更改body css样式属性,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我是AngularJS的新手,在window scroll上做了一个指令,用来修改body标记的css样式中的一个值。这是指令: app.directive("parallaxDir", function ($window, $document) { return function (scope, element, attrs) { angular.element($window).bind("scroll", function () { cons
body
标记的css样式中的一个值。这是指令:
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
console.log('Scroll in da directive');
// Here I want to modify the body tag css style to:
// background-position-y = $window.pageYOffset / 2) + "px")
});
};
});
我该怎么做
提前感谢。我在以下网站上偶然发现了一个解决方案: 最后的代码如下所示:
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
var body = angular.element(document).find('body');
body.css("background-position-y", ($window.pageYOffset / 2) + "px");
scope.$apply();
});
};
});
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
var body = $document[0].body;
body.css("background-position-y", ($window.pageYOffset / 2) + "px");
scope.$apply();
});
};
});
我偶然发现了一个解决方案: 最后的代码如下所示:
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
var body = angular.element(document).find('body');
body.css("background-position-y", ($window.pageYOffset / 2) + "px");
scope.$apply();
});
};
});
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
var body = $document[0].body;
body.css("background-position-y", ($window.pageYOffset / 2) + "px");
scope.$apply();
});
};
});
迟到,但接受答案中的jqLite
find
方法必须搜索所有子项,因为正文直接存储在$document
上。使用$document[0].body会更有效
您的最终代码如下所示:
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
var body = angular.element(document).find('body');
body.css("background-position-y", ($window.pageYOffset / 2) + "px");
scope.$apply();
});
};
});
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
var body = $document[0].body;
body.css("background-position-y", ($window.pageYOffset / 2) + "px");
scope.$apply();
});
};
});
迟到,但接受答案中的jqLitefind
方法必须搜索所有子项,因为正文直接存储在$document
上。使用$document[0].body会更有效
您的最终代码如下所示:
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
var body = angular.element(document).find('body');
body.css("background-position-y", ($window.pageYOffset / 2) + "px");
scope.$apply();
});
};
});
app.directive("parallaxDir", function ($window, $document) {
return function (scope, element, attrs) {
angular.element($window).bind("scroll", function () {
var body = $document[0].body;
body.css("background-position-y", ($window.pageYOffset / 2) + "px");
scope.$apply();
});
};
});