使用AngularJS进行不同的过渡

sto*_*ofl 2 angularjs angularjs-directive angularjs-animation

如何使用AngularJS启用不同的过渡.让我们说,我的网络应用程序中有一个侧边栏.我用户点击按钮X,侧边栏应该很快消失,如果用户点击另一个按钮,侧边栏应该慢慢消失.

我认为,这可以通过在其中一次点击之后设置转换选项值然后更改侧边栏的可见性状态(由转换指令监视)来实现.

但这对我来说似乎有点糟糕.有一个共同的方法来做到这一点?

Stu*_*tuR 5

我会做这样的事情.为侧栏设置默认转换,然后应用具有不同转换速度的类.

这是我所说的jsFiddle:

http://jsfiddle.net/rd13/eTTZj/149/

HTML:

<div ng-controller="myCtrl">
    <div class="sidebar" ng-class="{'slide-out':boolChangeClass}">
        Sidebar
    </div>
    <button ng-click="click()">Toggle Sidebar</button>
</div>
Run Code Online (Sandbox Code Playgroud)

角度:

function myCtrl($scope) {
    $scope.click = function() {
        $scope.boolChangeClass = !$scope.boolChangeClass;
        $scope.$apply();
    }
}
Run Code Online (Sandbox Code Playgroud)

CSS:

.sidebar {
    -moz-transition: left .1s;
    -webkit-transition: left .1s;
    -o-transition: left .1s;
    transition: left .1s;
    width: 100px;
    background-color: blue;
    position: absolute;
    top: 0px;
    bottom: 0px;
    left: -100px;
}

.slide-out {
    -moz-transition: left 1s;
    -webkit-transition: left 1s;
    -o-transition: left 1s;
    transition: left 1s;
    left: 0px;

}
Run Code Online (Sandbox Code Playgroud)