jQuery.ScrollTo onAfter настройки работают некорректно

м, используяjQuery.ScrollTo скрипт для возможности вертикальной прокрутки к выбранному изображению (если класс контейнера "презентация» ISN»t) или к следующему изображению и отобразите его в середине экрана.

Примечание: я создал два состояния. Когда пользователь нажимает на любую картинку, ям добавивпрезентация» класс кcontainer div от всех картинок. Поэтому я буду знать, нужно ли мне отображать выбранное изображение или следующее.

Этот режим остановится, когда пользователь прокрутит страницу. Чтобы сделать это, ям, используя$(window).scroll событие.

Вот моя проблема: после события клика на картинке, иногда, мой класс "презентация» удаляется моим$(window).scroll событие, но я нене знаю, как это исправить.

Вот демо:http://jsfiddle.net/qnQSP/8/

Что я'Я делаю: Как вы можете видеть, я хотел бы создать два состояния: "режим презентации " и "нет режима презентации ", Я'm активировать режим презентации, когда мы нажимаем на элемент, добавляя глобальный класс в мой контейнер "#galleries».

С этим классомна"Я могу определить, нужно ли отображать текущее изображение или перейти к следующему.

Чтобы довольно режим презентации, я написал "$ (Окна) .scroll» функция. Эта функция выходит из режима презентации, когда мы прокручиваем страницу.

Однако, когда я использовал функцию .scrollTo в режиме презентации, я всегда выходил из этого режима из-за "$ (Окна) .scroll» функция. Итак, у меня была глобальная переменнаяpresentation_mode_stop_scrolling» чтобы остановить это.

Иногда$ (Окна) .scroll» функция вызывается один раз сразу после моей функции scrollTo, может 'не могу решить это.

Вот мой код:

HTML:



<img src="http://www.sb-designs.co.uk/ckfinder/userfiles/images/free%20web%20hosting.jpg">


<img src="http://www.mastercreations.net/wp-content/uploads/2012/10/5.jpg">


<img src="http://www.sb-designs.co.uk/ckfinder/userfiles/images/free%20web%20hosting.jpg">


<img src="http://www.webdesign4essex.co.uk/images/essex_website_design.jpg">


<img src="http://www.mastercreations.net/wp-content/uploads/2012/10/5.jpg">

Jquery

$(window).scroll(function () {

  if(presentation_mode_stop_scrolling=="off")
  {
      $("#galleries").removeClass("picture_presentation");
  }

});

    var picture_to_center_class = "";   
    var picture_to_center="";

    $("#galleries #pictures-content").unbind("click");
    $("#galleries #pictures-content").bind("click", function(event) {
        // Check if we are in the presentation mode
        var class_galleries = $("#galleries").attr('class');
        if(class_galleries == "picture_presentation")
        {
            console.log("Presenation mode");
            var new_picture = parseInt(picture_to_center_class)+1;

            // Stopping the scroll event to cancelled the presentation mode
            presentation_mode_stop_scrolling="on";

            //scrolling to the next one
            var picture_to_center = $("#galleries ."+new_picture);      
            $("body").scrollTo(picture_to_center, 800, {onAfter:function(){ presentation_mode_stop_scrolling="off";      console.log("galleries class: "+$("#galleries").attr('class'));} });
        }
        else
        {
            console.log("Not presenation mode");
            // We are adding the presentation mode to the DOM 
            $("#galleries").addClass("picture_presentation");

            // Get the binding element class number 
            picture_to_center_class = $(this).attr('class');
            console.log("picture_to_center: "+picture_to_center_class);

            picture_to_center = $("#galleries ."+picture_to_center_class);


             // Stoping the (windows).scroll to removed the galleries class 
            presentation_mode_stop_scrolling="on";
            $("body").scrollTo(picture_to_center, 800, {onAfter:function(){ presentation_mode_stop_scrolling="off";      console.log("galleries class: "+$("#galleries").attr('class'));} });
         }
    });

Ответы на вопрос(0)

Ваш ответ на вопрос