CSS3 トランジションに基づいて、非 jQuery レスポンシブ イメージ スライダーを作成しています。
構造は単純です: ビューポートと内部の相対的に配置された UL と、左側にフロートされた LI があります。
私はそのような状況で問題に直面しています:
- ユーザーが「前へ」の矢印をクリックします。
- JS は、現在表示されている LI ノードの前に適切な LI を追加します。
none 0s linear
今のところ、UL はアニメーションの変更を防ぐようにCSS トランジションを設定しています。この時点で、UL CSS の左の値をスライダー幅 (たとえば、0px から -1200px) だけ減らして、ビューを以前と同じにします。- 現在、UL の遷移プロパティを に変更してい
all 0.2s ease-out
ます。 - 現在、UL の left プロパティを変更して、CSS3 アニメーションをトリガーしています。(たとえば、-1200px から 0px まで)。
何が問題ですか?ブラウザは変更を簡素化し、アニメーションを作成しません。
Stoyan Stefanov はここのブログでリフローの問題について書いていますが、この場合、要素にリフローを強制しようとしてもうまくいきません。
これは、これを行うコードの一部です (簡略化のためにブラウザーの接頭辞をスキップしました)。
ul.style.transition = 'none 0s linear 0s';
ul.style.left = '-600px';
ul.style.transition = 'all 0.2s ease-out';
ul.style.left = '0px';
実際の問題を確認するためのフィドルは次のとおりです。http://jsfiddle.net/9WX5b/1/