2013-09-20 2 views
0

У меня есть ситуация с слайдером jquery ui. У меня есть изображение в div с переполнением, которое можно масштабировать и панорамировать внутри div. слайдер управляет увеличением и уменьшением изображения, проблема в том, что если я нажму кнопку «Сброс» или измените изображение, обработчик не вернется в исходное положение (в середине слайдера).сброс jquery ui позиция ползунка ползунка

в следующем примере: http://jsfiddle.net/omegaiori/QWfHE/3/embedded/result/ zoom IN до максимального размера с помощью ползунка, затем нажмите кнопку сброса. Что происходит, изображение сжимается до первоначального размера, но не может быть увеличено снова.

вот функция для слайдера:

$(function() { 
     $("#slider-vertical").slider({ 
      orientation: "vertical", 
      range: "min", 
      min: 0, 
      max: 1000, 
      value: 500, 
      slide: function (event, ui) { 
       var prevVal = $("#amount").val(); 
       var newVal = ui.value; 
       if (prevVal > newVal) { 
        zoomOut(); 
       } else { 
        zoomIn(); 
       } 

       $("#amount").val(ui.value); 
      } 
     }); 
     $("#amount").val($("#slider-vertical").slider("value")); 
    }); 

мне нужно было бы, что каждый раз мои условия изменения (я изменить картину, я ударил сброса или подходят кнопки), ручка слайдер JQuery Ui идет туда, где он принадлежит .. в центре слайдера :)

может кто-нибудь мне помочь? что было бы здорово :)

ответ

1

Установите значение, когда кнопка сброса нажата с этой линией:

$("#slider-vertical").slider('value', 500); 

FIDDLE

+0

несчастливо, который конфликтует с моими другими функциями (кастрюля перестает нормально работать, например) – valerio0999

+0

Единственный способ программно установить значение слайдера с помощью плагины, встроенные в опции. Нет другого способа сделать это, поэтому, если он не работает с другими функциями, вам придется их перестроить. – adeneo

0

У вас есть много лишнего кода. Возможно, было бы лучше подход к реализации функции, как:

function resize(factor) { 
    // do the image resizing here and adjust all controls accordingly 
} 

, а затем вызвать эту функцию от остальных:

function zoomIn() { 
    resize(1.05); 
} 

// etc... 

Таким образом, вы убедитесь, что, что изображения и элементы управления находятся в постоянное состояние каждый раз. Вы можете управлять слайдер позицией $("#slider-vertical").slider('value', newposition); (вы должны будете вычислить newposition раньше)

+0

это немного продвинутый для моего уровня, не могли бы вы помочь? – valerio0999

+0

Я развернул вашу скрипку и реализовал кнопки '' '' '' '' '' и '' '', чтобы продемонстрировать предложенную мной идею. http://jsfiddle.net/dGACe/1/ – jotaen

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