私は自分自身をよりよく知るために、独自のjquery画像カルーセルを作成しようとしています。
ここで例を見つけることができます。
カルーセルは、右全体をスライドさせ、最後に
問題は、誰かが次/前のボタンをスパムすると、カルーセル全体が右に移動し、前/次が1秒に1回使用されるか、jqueryで短い間隔(500)でクリックされるように設定すると、何かが起こらないことです。
コードの関連部分は次のとおりです。
function initUl(){
var li_width = $('.upper li').outerWidth();
var upper_width=$('.upper').outerWidth();
var lower_width=$('.lower').outerWidth();
var upper_pos = $('.upper').position();
var lower_pos = $('.lower').position();
lastBeforeFirst();
$('.upper').css({'left': upper_pos.left + (-1*li_width)});
$('.lower').css({'left': lower_pos.left + (-1*li_width)});
$('.upper').css({'width': upper_width + li_width});
$('.lower').css({'width': lower_width + li_width});
}
function moveBothRight(){
var speed = 200;
var li_width = $('.upper li').outerWidth();
var upper_pos = $('.upper').position();
var lower_pos = $('.lower').position();
$('.upper').animate({'left' :upper_pos.left + li_width}, speed,fixUpperPosR);
$('.lower').animate({'left' :lower_pos.left + li_width}, speed,fixLowerPosR);
}
function fixUpperPosR(){
var li_width = $('.upper li').outerWidth();
var upper_pos = $('.upper').position();
$('.upper').css({'left': upper_pos.left - li_width});
}
function fixLowerPosR(){
lastBeforeFirst();
var li_width = $('.upper li').outerWidth();
var lower_pos = $('.lower').position();
$('.lower').css({'left': lower_pos.left - li_width});
}
function lastBeforeFirst(){
var first = $('.upper ul li:first');
var last = $('.upper ul li:last');
$(first).before($(last));
first = $('.lower ul li:first');
last = $('.lower ul li:last');
$(first).before($(last));
}
このコードはすべてを右に移動する責任があり、次のクリックで呼び出されます。左側の唯一の違いは
$('.lower').css({'left': lower_pos.left + li_width});
および firstBeforeLast(); 電話
これはブラウザーの問題ですか (css をすばやく更新することはできません)、したがって、ボタンを押す頻度を制限する必要がありますか、それとも何か不足していますか?