2013-07-31 3 views
0

Я использую smootdivscroll для отображения продуктов на веб-сайте. Продукты загружаются в большой div, который затем прокручивает влево и вправо, используя скрипт smootdivscroll. У меня есть стрелки настройки слева и справа, которые прокручиваются при наведении или нажатии.smoothdivscroll - только прокрутка по клику

Я хочу отключить прокрутку мыши и разрешить прокрутку при нажатии стрелок.

Actual page

Smoothdiv scroll demo page

С уважением.

ответ

1

Я не думаю, что у этой функции есть встроенная функция. Однако вы могли бы, вероятно, использовать этот общедоступный метод: http://www.smoothdivscroll.com/publicMethods.html#move

Отключить hotSpotScrolling в настройках и связать несколько обработчиков событий нажмите на те стрелки, которые будут вызывать метод move().

+0

Это лучшая идея, но она теряет некоторые достоинства плагина. – Fresheyeball

+0

@Fresheyeball Действительно, это либо то, либо обезьяна, исправляющая исходный код, чтобы превратить этих прослушивателей mouseover/mouseout в mousedown/mouseup. В любом случае это не будет элегантным, но должно работать. – dom

1

После прочтения документации по этому вопросу это не будет возможным без взлома плагина. Горячие точки прослушивают наведение и нажимают, и вы не можете отключить один без другого.

Место для поредактируете вы должны выбрать (не рекомендуется) здесь https://github.com/tkahn/Smooth-Div-Scroll/blob/master/js/jquery.smoothDivScroll-1.3.js#L195

вам нужно будет удалить все, кроме mousedown и mouseup слушателей.

+0

К сожалению, это просто отключает прокрутку путем нажатия и зависания. – Samwise

+0

ответ обновлен. – Fresheyeball

1

Спасибо за помощь и идеи, ниже было мое решение.

Во-первых отключить горячие точки и hotspotscrolling:

visibleHotSpotBackgrounds: "", 
hotSpotScrolling: false 

я создал две ссылки, поздно обновленную стрелку изображений, которые управляют прокруткой:

<a title="Scroll Left" href="#" onclick="MoveLeft();return false;">LEFT</a> 
<a title="Scroll Right" href="#" onclick="MoveRight();return false;">RIGHT</a> 

Используйте две простых функции для продвижения прокрутки + - 200px

<script type="text/javascript"> 
    function MoveRight() { 
     $("#makeMeScrollable").smoothDivScroll("move", 200); 
    } 
    function MoveLeft() { 
     $("#makeMeScrollable").smoothDivScroll("move", -200); 
    } 
</script> 

Чтобы сгладить набор прокрутки:

easingAfterMouseWheelScrolling: true 
+0

Похоже, вы реализовали ответ @ dom. Пожалуйста, примите это. – Fresheyeball

Смежные вопросы