Всем привет! Да, я знаю, что в интернете куча готовых решений этой задачи, но всё же хочется сделать самому. тем более что уже почти готово. Сразу скажу, что всё работает нормально, за исключением одной детали - если на предпоследнем слайде резко нажать два раза вправо, то слайдер смещается за пределы дозволенного, так как на момент проверки - отступ допустимый. Надеюсь всё понятно изложил. Вот код: Код (Javascript): // JQuery ! $('#RArr').click(function(){ // При клике на стрелку "вправо" var wid = $(window).width(); //получаем ширину окна, так как один слайд - на всю ширину окна var MaxPd = wid*4*(-1); // всего 5 слайдов, поэтому минимальный marginLeft может быть таким var pad = $('#sldr').css('marginLeft').replace('px',''); // получаем текущий marginLeft if (pad <= MaxPd) { // если текущий marginLeft меньше или равен максимальному $('#sldr').animate({opacity:"0"}, 250, function(){ // то делалем "эффектный" возворат к первому слайду $('#sldr').css({'marginLeft':'0'}); $('#sldr').animate({opacity:"1"}, 250); }); } else { // иначе просто двигаем слайд куда попросил пользователь. $('#sldr').animate({marginLeft:"-=100%"},500); } }); Прошу совета, как решить проблему... заранее благодарю!
То есть из-за того, что второй клик в процессе animate случается? Если так, то по клику делай флажек, что кнопка недоступна, а в завершении анимации снова разрешай.
дело в том, что в роли кнопки - обычный блок с картинкой. Что значит сделать недоступной? Может быть можно как то функцию заблокировать на это время?
ну например, Код (Text): var available = true; $('#RArr').click(function(){ // При клике на стрелку "вправо" if (!available) return; available = false; ...
@artoodetoo а можно пояснить как это работает? или ссылку на почитать... хотелось бы понять как созданная переменная связанна с функцией...