如何在AngularJS中向上滑动和向下滑动?

Shr*_*uti 6 angularjs angularjs-directive angularjs-scope angularjs-ng-repeat ionic-framework

我想在AngularJS中做一个简单的切换示例.我面临一个问题,我需要显示和隐藏一些动画,如向上滑动和向下滑动.我search点击标题上的按钮我显示搜索div它在我的plunker工作.我的问题是做动画......

其次我需要添加,z-index因为它会生成新图层.当我点击搜索按钮时,"我的名字" 会在搜索栏打开时关闭.为什么?

<ion-view>
<ion-header-bar align-title="" class="bar-positive">
  <div class="buttons">
  <i style="font-size:25px!important" class="icon-right ion-android-radio-button-off" ng-click="showsearch()"></i>

  </div>
  <h1 class="title">Title!</h1>
  <a class="button icon-right ion-chevron-right button-calm"></a>
</ion-header-bar>
<div class="list list-inset searchclass" ng-show="isdiplay">
  <label class="item item-input">
    <img src="https://dl.dropboxusercontent.com/s/n2s5u9eifp3y2rz/search_icon.png?dl=0">
    <input type="text" placeholder="Search">
  </label>
</div>
<ion-contend>
  <div style="margin-top:50px">
  my name
</div>
</ion-contend>

</ion-view>
Run Code Online (Sandbox Code Playgroud)

Lor*_*ual 6

使用Angular时,您仍然有机会使用普通的旧CSS转换.但是,有很多方法可以动画元素.在我的解决方案中,我使用ng-class而不是ng-show.active当你点击触发器时,我切换班级.最后,类会更改元素的状态,从而产生您想要实现的动画.

你可以简单地更改ng-showng-class="{'active':isdiplay}"并添加以下CSS:

.searchclass {
  border: 1px solid red;
  margin: 0 !important;
  position: relative;
  top: 44px;
  z-index: 9999;
  -webkit-transition: height .3s ease-in-out;
  transition: all .3s ease-in-out;
  height: 0;
  opacity: 0;
}
.searchclass.active {
  height: 49px;
  opacity: 1;
}
Run Code Online (Sandbox Code Playgroud)

但是,您可以如我之前说的,也使用ng-show与模块ngAnimate需要被列入自己的模块之一.这将使动画开箱即用,所以它可以动画元素得到类,如.ng-hide-remove,.ng-hide-add.ng-hide-add-active等.然后,您可以在风格你自己的类.

angular.module('ionicApp', ['ionic']).controller('MyController', function($scope) {
  $scope.isdiplay = false;
  $scope.showsearch = function() {
    $scope.isdiplay = !$scope.isdiplay;
  }
})
Run Code Online (Sandbox Code Playgroud)
.searchclass {
  border: 1px solid red;
  margin: 0 !important;
  position: relative;
  top: 44px;
  z-index: 9999;
  -webkit-transition: height .3s ease-in-out;
  transition: all .3s ease-in-out;
  height: 0;
  opacity: 0;
}
.searchclass.active {
  height: 49px;
  opacity: 1;
}
Run Code Online (Sandbox Code Playgroud)
<link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet" />
<script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script>
<div ng-app="ionicApp" ng-controller="MyController">
<ion-view>
  <ion-header-bar align-title="" class="bar-positive">
    <div class="buttons">
      <i style="font-size:25px!important" class="icon-right ion-android-radio-button-off" ng-click="showsearch()"></i>
    </div>
    <h1 class="title">Title!</h1>
    <a class="button icon-right ion-chevron-right button-calm"></a>
  </ion-header-bar>
  <div class="list list-inset searchclass" ng-class="{'active':isdiplay}">
    <label class="item item-input">
      <img src="https://dl.dropboxusercontent.com/s/n2s5u9eifp3y2rz/search_icon.png?dl=0">
      <input type="text" placeholder="Search">
    </label>
  </div>
  <ion-contend>
    <div style="margin-top:50px">
      my name
    </div>
  </ion-contend>
</ion-view>  
</div>
Run Code Online (Sandbox Code Playgroud)