2016-04-01 8 views
5

私のコードは次のとおりです:どのように回転することができますか?ボタンがクリックされたときにNG-クラスAngularJsで画像を回転するにはどうすればいいですか

<md-card class="header" style="margin: 0 0 4px 0;" ng-mousedown="toggleCollapse('source')"> 
    <md-card-content layout="row" layout-align="start center"> 
    <img src="../assets/icons/cd-icon-arrow.svg" class="buildrag-toggle"> 
    <h2 class="md-title no-top-margin no-bottom-margin" flex style="padding-left: 10px;">Data</h2> 
    <md-button class="md-icon-button header-button" ng-mousedown="addDataSource($event)"> 
     <md-icon>add_circle_outline</md-icon> 
    </md-button> 
    </md-card-content> 
</md-card> 

Here is my button

+0

'ng-class'を使用してクラスを適用し、' transform:rotate'を実行しますか? アニメーションでも動作します – Aides

答えて

11

使用すると、クラスを切り替えます。次に、このクラスをCSSで使用して画像を回転させます。

<md-card class="header" style="margin: 0 0 4px 0;" ng-mousedown="toggleCollapse('source')"> 
    <md-card-content layout="row" layout-align="start center"> 
    <img src="../assets/icons/cd-icon-arrow.svg" ng-class="{'rotate': rotateImg}" class="buildrag-toggle"> 
    <h2 class="md-title no-top-margin no-bottom-margin" flex style="padding-left: 10px;">Data</h2> 
    <md-button class="md-icon-button header-button" ng-mousedown="addDataSource($event)" ng-click="rotateImg = !rotateImg"> 
     <md-icon>add_circle_outline</md-icon> 
    </md-button> 
    </md-card-content> 
</md-card> 


.rotate { 
    -ms-transform: rotate(90deg); /* IE 9 */ 
    -webkit-transform: rotate(90deg); /* Chrome, Safari, Opera */ 
    transform: rotate(90deg); 
} 
+1

角度ツールを使用する、偉大でシンプルなソリューションです。正確に私が必要としたもの。 –

0

あなたのボタンをクリックすると、コントローラでそれを処理し、クラス

を追加this

コントローラをご覧持ってクリックした場合:

$scope.todoClicked = function(id) { 
console.log("clicked", id); 
if (!$scope.showMoreTab[id]) { 
    $scope.showMoreTab[id] = true; 
    angular.forEach($scope.todos, function(todo) { 
    if (id !== todo.id) { 
     $scope.showMoreTab[todo.id] = false; 
    } 
    }); 
} else { 
    $scope.showMoreTab[id] = false; 
    } 
} 

ビュー:

<md-button class="md-icon-button md-toggle-icon" aria-label="More" ng-click="todoClicked(todo.id)" ng-class="{'toggled':showMoreTab[todo.id]}"> 
      <i class="material-icons"> 
      keyboard_arrow_down</i> 
     </md-button> 

CSS:

.md-toggle-icon.toggled { 
    -webkit-transform: rotate(180deg); 
    transform: rotate(180deg); 
} 

私はここでアイコンを使用していますが、あなたもsvgで試すことができます。

<md-button class="md-icon-button md-toggle-icon" aria-label="More" ng-class="{'toggled':showMoreTab[todo.id]}" ng-click="todoClicked(todo.id)"> 
          <md-icon md-svg-src="/material-design-icons/navigation/svg/design/ic_expand_more_36px.svg"> 
          </md-icon> 
         </md-button> 
関連する問題