2016-09-23 11 views
1

ボタンをクリックした後、あるdivを別のdivに移動しようとしています。NG-ClickでAngularJSの1つのdivを別のdivにアニメート/移動

私はこれがJQueryでどのように機能するのか知っていますが、これをangularJSで実行する方法はありますか?私はwebshopアプリケーションのためにangularJSを使用していますが、角度アニメーションでは実際に何もしませんでした。製品を追加した後、divを別のdivに移動するので、カートに商品を追加したことがわかります。ここで

は私が何を意味するか実証するための画像です:

Move div in AngularJS

私は単純にDIV2にDIV1を移動したいです。これのベストプラクティスは何ですか?どんな助けもありがとうございます。余分なdiv1はアニメーションの後に隠れて、前の位置にリセットされます。

+0

はDIV2固定されていますか?または、ページ上の異なる場所に表示されますか?あなたがフィドルをセットアップすれば、私はあなたを助けることができると確信しています。 – Nix

+0

Div2はデバイスの幅と高さに応じて異なる場所に配置されます。 –

答えて

2

ここにはstabがあります。必要に応じて調整することができる基本的な概念を示します。

あなたはちょうどオフセットを計算してからng-styleng-classを使って遷移させます。calculatePosition変数を設定してmoveMeを実装する必要があります。私は怠け者だからjqueryを使いました。

function moveMe(target){ 
     //do caclculation here: 
    var clickMe = $('.clickMe'); 
    var target = $('.targetMe'); 
    var left = target.offset().left - clickMe.offset().left; 
    var top = target.offset().top - clickMe.offset().top; 
    $scope.calculatePosition = { 
    transform: 'translate(' + left + 'px,' + top + 'px)' 
    } 
    $scope.top = top; 
    $scope.left = left; 
    $scope.animate = true; 
} 

テンプレート:

<div class='container'> 
    <div class='button clickMe' ng-style="calculatePosition" ng-class="{animate: animate}" ng-click="moveMe()"> 
    Div 1 
    </div> 

    <div class='button targetMe'> 
    Div 2 
    </div> 
</div> 
+0

ありがとう、私はあなたの実装をプロジェクトに合わせて調整しました。 Evertime製品に追加ボタンをクリックすると、moveMe()関数が起動します。これは、基本的にdivを他のdivに移動させ、表示がnoneのときにアニメーションを元の位置に戻します。アニメーションをsetTimeout()で取り消すことはできないので、奇妙なことは起こりません。 –

関連する問題