Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在进入或离开AngularJS状态时更改CSS属性_Javascript_Html_Css_Angularjs - Fatal编程技术网

Javascript 在进入或离开AngularJS状态时更改CSS属性

Javascript 在进入或离开AngularJS状态时更改CSS属性,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,我有一个应用程序,我想在进入/退出角度状态时更改CSS属性。我的CSS属性是html和body元素(基本上是背景)上的背景色,这些元素在状态转换时会暴露出来。我想改变背景的颜色,使过渡看起来更好一点。有什么建议我可以在Angular中这样做吗?ui路由器的$state服务会随着状态的变化在$rootscope上广播事件。您可以收听这些事件并相应地应用样式更改。以下情况会导致您的身体在状态转换期间呈现红色背景,在状态转换之后呈现白色背景: angular.module('myApp').run(f

我有一个应用程序,我想在进入/退出角度状态时更改CSS属性。我的CSS属性是htmlbody元素(基本上是背景)上的背景色,这些元素在状态转换时会暴露出来。我想改变背景的颜色,使过渡看起来更好一点。有什么建议我可以在Angular中这样做吗?

ui路由器的
$state
服务会随着状态的变化在
$rootscope
上广播事件。您可以收听这些事件并相应地应用样式更改。以下情况会导致您的身体在状态转换期间呈现红色背景,在状态转换之后呈现白色背景:

angular.module('myApp').run(function($rootScope){
    $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){
        //change body background 
        document.body.style.background = 'red';
    });
    $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
        //reset body background
        document.body.style.background = 'white';
    });
});

您是在使用
ngRoute
还是
uiRouter
进行路由?我的body元素现在看起来也是这样:
getStyle()
将返回一个变量,我将在状态更改时更改该变量。。但是我不确定这是不是正确的方法,因为根据日志,我的
getStyle()
方法经常受到攻击。它必须是
body
元素来制作动画吗?不,它实际上不是
body
元素来制作动画,但是动画元素会
body
暴露出来,所以
body
需要一个backdropSo,您只想在过渡期间拥有不同的背景吗?您好,谢谢您的回答。不同的是,它让我更进一步,但是有没有一种方法可以根据范围中的值动态查找
document.body.style.background的值?我知道我可以在我的状态中设置一个自定义参数来设置颜色-这是正确的方法吗?或者我需要在控制器中设置颜色并从
$stateChangeStart
事件中查找吗?您想要的是可以正常工作的方式还是“角度方式”?请使用“角度方式:)我可以用您之前的答案解决一些可以正常工作的问题,但我想先学习正确的方法..您知道,在国家声明中添加颜色可能是最好的方法(将颜色添加到控制器中感觉责任太多)。因此,在
$stateChangeStart
侦听器中,您可以通过
toState.color
或我认为可行的任何方式访问颜色值。。所以你不认为有办法让它更有活力?
主体
的颜色将始终与我正在转换的视图上设置的颜色相同。。然而,据我所知,如果我在状态中放置一个颜色值,它基本上是一个字符串,而不是一个查找,因此我将在两个地方设置相同的颜色-CSS和状态值。。我知道这会奏效,但感觉有点脱节。