Smooth Div Scroll - Scroll Right сбрасывается при выключении мыши - PullRequest
0 голосов
/ 26 марта 2012

У меня мало проблем с плагином jquery smoothdivscroll.

По сути, я пытаюсь запустить плагин как эта страница: http://www.smoothdivscroll.com/demo.html

Однако у меня естьизменяет javascript, так как он необходим для автоматической прокрутки, но также позволяет работать с горячими точками, но вернуться к автоматической прокрутке мыши, оставляя горячую точку.справа, он «сбрасывается» обратно к первому div.

Есть ли способ настроить его на возобновление прокрутки с заданной позиции?

код:

    // Initialize the plugin with no custom options
    $(document).ready(function () {
        // I just set some of the options
        $("div#makeMeScrollable").smoothDivScroll({
        mousewheelScrolling: true,
        visibleHotSpotBackgrounds: "always",
        autoScrollingMode: "endlessright"
        });


    });
    //This is just to make the scroller pause...
    $("#makeMeScrollable").bind("mouseover", function() {
    $(this).smoothDivScroll("stopAutoScrolling");
    }).bind("mouseout", function() {
    $(this).smoothDivScroll("startAutoScrolling");
});

Ответы [ 3 ]

2 голосов
/ 27 марта 2012

Я не знаю, является ли это причиной ваших проблем, но вам нужно обратить внимание на круглые скобки. Измените код на это:

// jQuery document ready
$(document).ready(function () {
  // Initialize the scroller
  $("#makeMeScrollable").smoothDivScroll({
    mousewheelScrolling: true,
    visibleHotSpotBackgrounds: "always",
    autoScrollingMode: "endlessright"
  });

  //This is just to make the scroller pause...
  $("#makeMeScrollable").bind("mouseover", function() {
    $(this).smoothDivScroll("stopAutoScrolling");
    }).bind("mouseout", function() {
    $(this).smoothDivScroll("startAutoScrolling");
  });
}); // End query document ready

Я не тестировал этот код, но если я не сделал опечатку, это правильный способ сделать это.

Удачи!

0 голосов
/ 27 марта 2013

Я также считаю важным, что, возможно, разные версии будут влиять на поведение. Это работало для моей версии: jquery.smoothDivScroll-1.1-min.js.

Обратите внимание на разницу названий функций: stopAutoScroll и stopAutoScrolling и т. Д.

$(window).load(function() {
    $("#makeMeScrollable").smoothDivScroll({ 
        autoScroll: "always", 
        autoScrollDirection: "backandforth", 
        autoScrollStep: 1, 
        autoScrollInterval: 25, 
        startAtElementId: "startAtMe"
    });

    //This is just to make the scroller pause...
    $("#makeMeScrollable").bind("mouseover", function() {
        $(this).smoothDivScroll("stopAutoScroll");
        }).bind("mouseout", function() {
        $(this).smoothDivScroll("startAutoScroll");
    });
});
0 голосов
/ 27 марта 2012

Я видел, что варианты не верны. Попробуйте это (если вы используете последнюю версию, которая является версией 1.2):

  // Initialize the scroller
  $("#makeMeScrollable").smoothDivScroll({
    mousewheelScrolling: true,
    visibleHotSpotBackgrounds: "always",
    autoScrollingMode: "onstart",
    autoScrollingDirection: "endlessloopright",
    manualContinuousScrolling: true
  });

В этой конфигурации скроллер будет автоматически прокручиваться в безвыходном цикле сразу после загрузки. Как только пользователь использует колесико мыши или горячие точки, автопрокрутка прекращается, и если бы не ваши пользовательские обработчики событий, он не начинал автопрокрутку снова. Но поскольку они у вас есть, они должны начаться снова, как только пользователь покинет область прокрутки.

Я также установил для manualContinuousScrolling значение true, чтобы вы получали те же бесконечные циклы при прокрутке вручную.

Это не было проверено, поэтому вам, возможно, придется внести некоторые коррективы. Например, я не уверен, что autoScrollingMode: «onstart» или autoScrollingMode: «always» - лучший выбор. Тебе просто нужно попробовать.

...