この問題の解決策はまだ見つかりませんでした。いくつか試してみました...スライダースクリプトがあります(ここで見つけてください:http://jsfiddle.net/ND7cf/)。うまく機能しますが、divボックスの最後にあるときにスライダーを停止させることができません。あなたは永遠にスクロールすることができます。これを修正する方法を教えてください。これよりも優れた解決策はありますか?
ありがとうございました!
この問題の解決策はまだ見つかりませんでした。いくつか試してみました...スライダースクリプトがあります(ここで見つけてください:http://jsfiddle.net/ND7cf/)。うまく機能しますが、divボックスの最後にあるときにスライダーを停止させることができません。あなたは永遠にスクロールすることができます。これを修正する方法を教えてください。これよりも優れた解決策はありますか?
ありがとうございました!
変数を使用してクリック数を追跡できます: 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();
最初とクリックするたびに、スクロール バーの表示を更新します。
コードの簡単な修正: http://jsfiddle.net/G6x6L/10/
しかし、jQuery には多くのスライダー ソリューションがあります。次のいずれかを使用することをお勧めします: http://www.tripwiremagazine.com/2012/07/jquery-slider.html
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");
});
以下のコードをあなたの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);}
});