私は数ヶ月間Reactを使用していましたが、私はDOMアニメーション/操作のために多くのjQueryを使用しました。私が扱う操作はかなりうまくいくが、アニメーションや光沢のあるUIの作業はReactでは難しいようだ。少なくとも、jQueryほど簡単ではありません。私はアニメーションのためにjQueryを取り入れたくありません。私が達成しようとしていますjQueryのReact.jsでDOMアニメーションをどうやって作るのですか?進捗バーをアニメーション化するなど?
いくつかの例:一部のブートストラッププログレス・バーがあり、私の個人的なポートフォリオのページの私のスキルセクションまで
ユーザーがスクロールします。ユーザーが一度スクロールすると、これらのバーを「塗りつぶす」ようにどのようにアニメートしますか?私は位置を検出して何かを想像していますか?私は自分のプログレスバーを構築して、もっとコントロールすることもできました。
自分のプロジェクトを表す画像でフレックスボックスを設定したポートフォリオセクションのサイズを変更すると、画像が移行のようにゆっくりと再配置され、新しい場所にスナップされないようにします。
何かを左から/右からスライドさせるような簡単なことはありますか?
私はjQueryが私を台無しにしたと思います!私はリアクトでコントロールするほどの力がないように感じます。私はTransition Groupsを見てきましたが、かなり制限されているようです。ここで
は
import React from 'react';
export default (props) => {
const width = `${props.lvl}%`
// setup diff colors for bars
let backgroundColor = (function(lvl){
if (lvl <=35) {
return '#ffa64d'
}
else if (lvl >= 36 && lvl <= 49) {
return '#ffff66'
}
else {
return '#47d147'
}
}(props.lvl))
return (
<div>
<h4 style={{display: 'inline'}}>{props.name}</h4>
<div className="progress">
<div className='progress-bar' role="progressbar" aria-valuenow="70"
aria-valuemin="0" aria-valuemax="100" style={{width, backgroundColor}}>
</div>
</div>
</div>
)
}
[reactjsインラインスタイル](https://facebook.github.io/react/tips/inline-styles.html)を使用すると、プログレスバーの幅を動的に計算できます。なぜあなたのCSSトランジションを使用できませんかアニメーション? – Rison
新しいパーセンテージでコンポーネントを再レンダリングすることができます... – falsarella
Rison、もちろんCSSを使用したいのですが、スクロール位置を検出する必要があったため(つまり、プログレスバーセクションが画面上にあるときに幅をアニメーション化するだけでした)、私はちょうどCSSでそれをする方法を理解できませんでした。私はそれがいくつかのJSの権利を必要と思う? CSSだけの方法はありますか? – MindfulBell