は、共有要素の遷移だけを以下に示すGIFでアルバムアートのように、ページを移行するときに一緒にリンクするために、両方のページに存在する2つのまったく同じ要素を可能にしますクラス間でReactJSを使って同じ種類の移行を達成することが可能かどうか疑問です。もしそうなら、どんな例?そうでない場合、jQueryはどうですか?共有要素転移使用ReactJSアンドロイドで
12
A
答えて
4
ほとんどの場合、この変更はCSS transform
プロパティで行うことができます。 React JSはすべてDOMの操作に関するものですが、ここでそれを行う必要はありません。
アニメーション:
- は小さなパネルのテキストコンテンツを非表示にします。
- 画像とテキストの背景を拡大縮小してフルスクリーンにします。
- 新しいテキストコンテンツを挿入します。
これらのうち、1と3はReactで簡単ですので、本当にトランジションアニメーションが必要です。 - これらのプロパティはで扱うことができ
body {
background-color: #ccc;
}
.card {
width: 150px;
padding: 0;
margin: 0;
background-color: #fff;
position: absolute;
top: 0: left: 0;
z-index: 1;
/* Transition properties mean changes to them are animated */
transition-property: transform;
transition-timing-function: ease-in-out;
transition-duration: 500ms;
transform-origin: top left;
}
.card>img {
width: 150px;
height: 150px;
margin: 0;
padding: 0;
}
.card>.content {
width: 150px;
height: 50px;
background-color: #fff;
margin: 0;
}
/* This is only for the purposes of this demo.
* In production you'd have an underlying grid layout and JS to figure out the position */
.card:nth-of-type(2) {
left: 175px;
}
.card:nth-of-type(3) {
top: 230px;
}
.card:nth-of-type(4) {
top: 230px;
left: 175px;
}
/* On hover transform the card to full size and translate it to the top left
* Note that translate comes before scale. */
.card:nth-of-type(1):hover {
transform: scale(2.1667);
z-index: 2;
}
.card:nth-of-type(2):hover {
transform: translate(-175px, 0) scale(2.1667);
z-index: 2;
}
.card:nth-of-type(3):hover {
transform: translate(0, -230px) scale(2.1667);
z-index: 2;
}
.card:nth-of-type(4):hover {
transform: translate(-175px, -230px) scale(2.1667);
z-index: 2;
}
<div class="card">
<img src="http://via.placeholder.com/325/F50057/ffffff">
<div class="content"></div>
</div>
<div class="card">
<img src="http://via.placeholder.com/325/F44336/ffffff">
<div class="content"></div>
</div>
<div class="card">
<img src="http://via.placeholder.com/325/1DE9B6/000000">
<div class="content"></div>
</div>
<div class="card">
<img src="http://via.placeholder.com/325/FFEB3B/000000">
<div class="content"></div>
</div>
基本的なトリックがtranslate
とscale
とCSS transform
を使用することです。ここでは
CSSはちょっと大変ですが、純粋なCSSで行うことができることを示しています。実際には、いくつかのJSがオフセットプロパティを設定し、クリックイベントをフックアップするようにしたいと考えています。
もう1つのトリック(私はここでは行っていません)は、サイズコントロールとtranslate
/scale
それが開始するように見える位置にダウンします。ユーザーがクリックすると、transform
が削除されます。これにより、アニメーションを開始する前にブラウザがフルサイズのオブジェクトのDOMを再計算する必要がなくなります。
3
私はAndroidフレームワークを認識していないため、質問を正しく理解するかどうか分かりません。ここでReactJSの知識に基づいて私の解決策は次のとおりです。
ステップ:CurrentMode
& NextMode
:
- 2の状態変数を維持します。可能な値は
1
&2
です。 - アルバムをクリックすると
NextMode
が2
に変更されます。コードでは、CurrentMode
&NextMode
の値を比較します。CurrentMode
<NextMode
よりサイズを適切に設定してください。 - 同様に、
CurrentMode
>NextMode
よりサイズを設定してください。
関連する問題
- 1. 共有要素移行アクティビティ
- 2. Androidの共有要素転移、間違った開始位置
- 3. アンドロイド - 複数の共有要素を持つ異なる遷移
- 4. ネストされた共有要素を使用したシーン遷移
- 5. 浮動アクションボタンスタンドを使用した共有要素の移行
- 6. Android共有要素の移行のバグ
- 7. RecyclerViewの共有要素の遷移
- 8. Android共有要素の移行
- 9. 波及効果は、私は共有要素遷移を持つ共有要素推移とRecyclerView
- 10. 共有要素は、遷移アニメーションでナビゲーションバーをオーバーフロー
- 11. Matlab:要素ワイズ複素共役転置?
- 12. フラグメントからアクティビティへの共有要素の移行方法
- 13. 円形から矩形へImageView共有要素の遷移
- 14. Androidの断片共有要素の移行の実装
- 15. RecyclerViewからアクティビティへの共有要素の移行が
- 16. Android:フラグメント共有要素の遷移を聞きます
- 17. Androidの共有要素の遷移と同等のもの
- 18. 共有要素の遷移をキャンセルする
- 19. TextInputLayout共有要素の移行の問題
- 20. 終了アクティビティのカスタム共有要素の遷移
- 21. アクティビティ出口の共有遷移要素の変更
- 22. 共有要素の移行Androidが動作しない
- 23. Android - 共有要素リストビューからツールバータイトルへの遷移
- 24. Android共有要素の移行ツールバーのオーバーラップ
- 25. 共有要素の遷移のためのsharedElementビューの変更
- 26. アクティビティからフラグメントへの共有要素の遷移の例
- 27. 共有要素フレスコ画を使用したアニメーション
- 28. Glideを使用したシンプルな共有要素トランジションの遅れ
- 29. 回転後のSVG要素の移動
- 30. アクティビティ間の共有要素の共有をバックに戻す
html5/css3では1つの要素のトランジション(画像+音楽プレーヤー)を使用して反応を達成できるはずですが、reactjは音楽プレーヤーのサブ要素のコンテンツの変更を管理できます。あなたの質問に直接答えるには、あなたがhttps://facebook.github.io/react/docs/animation.html#high-level-api-をチェックしたかどうか確認してください。 –
reactcsstransitiongroup? –
@ChrisChen既にチェックして、私は自分自身の共有要素移行システムを作るつもりだと思う。その間に誰かがこれを行うライブラリを見つけた場合は、ここにリンクしてください。 – Lucio