質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

2689閲覧

スマホ フリックスライダーでの緩急の付け方

nahisa

総合スコア12

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

3クリップ

投稿2015/04/10 02:51

フリック距離からスピード等を計算してスライダーを作っています。
slideX1 に座標を入れて基本的な動きは問題ないのですが

lang

1$('#slider').css({'transform':'translate3d('+slideX1+'px, 0,0)'});

lang

1animation-timing-function:ease-out

求められるのがAmazonのスマホ版の様な止まり方で ease-out とかで指定するよりも緩急が多く
停止後にまた余韻の様なアニメーションを追加しても「かっくん」と言った感じで不自然になります。

Keyflame で %毎に移動距離を指定しても やはり境目が不自然になります。
setTimeout で終了を見計らって アニメーションを繋げても 不自然なパターンが出ます。

現在 setInterval で監視をして 指定座標を超えたらアニメーションを差し替える と言う感じのことをしていますが、こちらも $('#slider').css({'transform':'none'}); のタイミングで不自然になります。

lang

1 if( $('#slider').position().left <= slideX2 ){ 2 if( ivf == 0 ){ 3 4 $('#slider').css({'transform':'none'}); 5 6 7 8 $('#slider').css({ 9 'transition-duration':'900ms', 10 'animation-timing-function':'cubic-bezier(0.6, 0.9, 0.1, 0.9) ' 11 // 'animation-timing-function':'linear' 12 13 }); 14 15 16 17 setTimeout(function(){ 18 $('#slider').css({'transform':'translate3d('+slideX1+'px, 0,0)'}); 19 $('#vartest').html("★>>"+$('#slider').position().left+"<br>siv1:"+ivf+"/X2:"+slideX2+"/X1:"+slideX1); 20 21 ivf = 1; 22 23 24 25 },1); 26 } 27 }

停止後の余韻を追加したいのですが、根本的な考え方が違うのか、何か良い方法は無いでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

amazonのスマホ版(webブラウザ)の「新商品情報」の部分の横スライドのような動きを実装されるようでしたら、
cssアニメーションで実装されるのではなくoverflow:scroll-x;を使用されたほうがいいのではないかと思います。
実際にamazonのソースコードを読んでもoverflowで実装されていました。

スライドさせたい親要素に

lang

1.l-wrap{ 2 overflow:hidden;/* スライドを囲うものなのでoverflow:hidden;で画面外は見えないようにする */ 3} 4 5.l-items{ 6 overflow-x: scroll; /* 横にスクロールするようにする */ 7}

こういう感じで実装できると思います。

見当違いだったらごめんなさい!

投稿2015/04/10 05:18

MasakazuFukami

総合スコア1869

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nahisa

2015/04/10 08:36

こちらの回答をヒントにして進めた結果、「-webkit-overflow-scrolling: touch;」で理想の挙動となりました。 わざわざjsでCSSアニメーション処理を書く必要すらありませんでした。 こんなCSSがあるとは目からウロコでした。 ありがとうございます!
MasakazuFukami

2015/04/10 08:38

僕の答えちょっと違ったんですね(笑) とりあえず解決してよかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問