1

私はこのようなものに本当に慣れていません、そして私は誰かの助けを借りて本当にすることができました。

ここにjsフィドルを設定しています:http://jsfiddle.net/hAZR7/

私が抱えている問題は、より論理的/数学的な問題であり、アニメーションがうまく機能し、開始して目的の位置に移動するように見えるためです。私は困惑しているリターンであり、それを修正するために必要な方程式やコードがわかりません。(おそらく私を顔で見つめているのに)。

これがそれと関係があると私は考えるのは正しいでしょうか?クラス'on'を削除するとき、しかしそれがどこに戻るべきかを計算するためにマージンを設定するもの。

$elm.removeClass('on');
var $left_margin = $extra_margin;
$elm.stop().animate({marginLeft : $left_margin}, 1500, function()
     {$slider_started = false;});

更新-ご回答ありがとうございます。どちらの例もCSSのわずかな寸法を調整するだけで問題なく機能しますが、機能に悪影響を与えるとは思いません。これをスライドのsetInterval/自動化に実装する方法はありますか、それとも別の質問をする必要がありますか?

4

2 に答える 2

1

これを参照してください:http://jsfiddle.net/bt9Je/

変更点:

var $total_slider = $j('.top-slider-main > div').length;

var $left_margin = $extra_margin-((($total_slider-i))*$label_width);
于 2013-01-24T10:15:22.970 に答える
1

あなたになら変えられる

var $left_margin = $extra_margin;

if( $elm.next().length ) {
    var $left_margin = $elm.next().offset().left - $label_width;
} else {
    var $left_margin = $j('.top-slider-main').first().width() - $label_width;
}

編集コメントに記載されているバグを修正するには、フィドルを変更しますhttp://jsfiddle.net/hAZR7

var $total_slider = $j('.top-slider-main div').length;

var $total_slider = $j('.top-slider-main  > div').length;

とライン

var $left_margin = $extra_margin;

var $left_margin = $j('.top-slider-main').first().width() -  ( ( $total_slider - i + 1 ) * $label_width );

私はフィドルをフォークしましたhttp://jsfiddle.net/gU2Tq/

于 2013-01-24T10:36:23.583 に答える