0

この問題の解決策はまだ見つかりませんでした。いくつか試してみました...スライダースクリプトがあります(ここで見つけてください:http://jsfiddle.net/ND7cf/)。うまく機能しますが、divボックスの最後にあるときにスライダーを停止させることができません。あなたは永遠にスクロールすることができます。これを修正する方法を教えてください。これよりも優れた解決策はありますか?

ありがとうございました!

4

5 に答える 5

1

変数を使用してクリック数を追跡できます: another update

私のソリューションでは、scrollTracker は 1 から開始し、右のインクリメントをクリックし、左のデクリメントをクリックします。

$('#right-button').click(function() {
scrollTracker++;
...
$('#left-button').click(function() {
scrollTracker--;

scrollTracker を開始するときは 1 で、左スクロールを表示したくない場合:

scrollTracker > 1 ? leftButton.show() : leftButton.hide();

スクロールを終了すると、最大フレーム (totalFrames = $('.column').length の場合) になり、右スクロールを非表示にします。

scrollTracker < totalFrames ? rightButton.show() : rightButton.hide();

最初とクリックするたびに、スクロール バーの表示を更新します。

于 2012-07-10T13:44:08.387 に答える
0

コードの簡単な修正: http://jsfiddle.net/G6x6L/10/

しかし、jQuery には多くのスライダー ソリューションがあります。次のいずれかを使用することをお勧めします: http://www.tripwiremagazine.com/2012/07/jquery-slider.html

于 2012-07-10T13:41:35.800 に答える
0

スクリプトhttp://jsfiddle.net/ND7cf/6/を更新しました

于 2012-07-10T13:41:39.370 に答える
0

3 つのパラメーターを追加しました。leftMax-左にスクロールするときの最大値。rightMax - 右にスクロールしたときの最大値: これは実際の例です:

var leftMax=0;
var rightMax=-2*450;
var currrent=0;
$('#right-button').click(function() {
    currrent=currrent-450;
    if(currrent<rightMax) currrent=rightMax;
    $('#box').animate({
    marginLeft: currrent
    }, "fast");
});
$('#left-button').click(function() {
    currrent=currrent+450;
    if(currrent>leftMax) currrent=leftMax;
    $('#box').animate({       
     marginLeft: currrent
    }, "fast");
});
于 2012-07-10T14:12:59.843 に答える
0

以下のコードをあなたのjsコードに置き換えてください。あなたの要求に従って動作します

var margin_total= 0;

$('#right-button').click(function() {
if(margin_total > -900){  
    $('#box').animate({
    marginLeft: "-=450"
    }, "fast");
margin_total = margin_total - 450;
    console.log(margin_total);}
});

$('#left-button').click(function() {
if(margin_total < 0 ){
    $('#box').animate({
    marginLeft: "+=450"
    }, "fast");
margin_total = margin_total + 450; 
    console.log(margin_total);}
});
于 2012-07-10T13:49:00.387 に答える