今日、JavaScript と jQuery の学習を始めたばかりで、最初の問題が頭を悩ませました。これを解決するために何時間も探していましたが、解決策はどれもうまくいきませんでした。
私の問題は、メニュー リンクをクリックするとコンテンツが左右にスライドする「カルーセル」Web サイトを作成したことです。
すべて正常に動作しますが、クリック機能のアニメーションが終了する前に別のメニューリンクをもう一度クリックすると、コンテンツがスライドして正しい位置になくなります。
promise().done()、フラグ、コールバックなどを試しましたが、何もうまくいきませんでした:(多分私はそれを間違ってやった..
このクリック機能を終了するまでブロックするか、この機能のキューを作成して、同時にではなく次々に実行するための解決策を探しています。
これが私のJSコードです。完璧ではなく、もっとうまく解決できることはわかっていますが、私が言ったように、今日このことを学び始めたばかりで、構文などにはまだ慣れていません。
var gotoPage = function(pos) {
if(pos == 'home') {
$('li#home').css({"opacity" : 1});
$('li#home').css({"left" : "1700px"});
$('li#home').animate({"left" : "0px"}, speed, 'easeInOutQuint');
$('li#news').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#news').animate({"opacity" : 0}, 0);
$('li#galery').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#galery').animate({"opacity" : 0}, 0);
} else if (pos == 'news') {
$('li#news').css({"opacity" : 1});
$('li#news').css({"left" : "1700px"});
$('li#news').animate({"left" : "0px"}, speed, 'easeInOutQuint');
$('li#home').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#home').animate({"opacity" : 0}, 0);
$('li#galery').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#galery').animate({"opacity" : 0}, 0);
} else if (pos == 'galery') {
$('li#galery').css({"opacity" : 1});
$('li#galery').css({"left" : "1700px"});
$('li#galery').animate({"left" : "0px"}, speed, 'easeInOutQuint');
$('li#news').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#news').animate({"opacity" : 0}, 0);
$('li#home').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#home').animate({"opacity" : 0}, 0);
}
}
$(document).ready(function(){
hideAll();
autoSelect();
$('#home').click(function(){
gotoPage(posHome);
});
$('#news').click(function(){
gotoPage(posNews);
});
$('#galery').click(function(){
gotoPage(posGalery);
});
});
手伝ってくれませんか?