Jcrop: после setImage jcrop не принимает TrueSize при применении нового изображения

Я работаю с Jcrop и пытаюсь хорошо вписать его в адаптивный макет. Я решил, что он будет уничтожен в window.resize и повторно инициализирован с параметром TrueSize (как предлагается здесь: https://stackoverflow.com/a/33592528/2126308). Но теперь я хочу добавить возможность обновить изображение на setImage, но на маленьком экране после изменения img Jcrop изменит его размер до исходного размера img. Должен ли я уничтожить Jcrop и снова инициализировать (как при изменении размера), или я делаю что-то не так?


person eldi    schedule 08.03.2016    source источник


Ответы (1)


Хочу поделиться своим решением, т.к. я заглянул в код этой функции, которая, кстати, была не слишком длинной :-) и оказалось, что функция setImage все пересчитывает без учета размеров TrueSize, которые были переданы при инициализации. Единственный способ решить эту проблему — добавить еще один метод в Jcrop. К сожалению, и поправьте меня, если я ошибаюсь, Jcrop v0.9.12 не был написан для обработки перегрузки функций, поэтому я закончил с пользовательским Jcrop.

Чтобы быть точным, я изменил только начальный размер изображения laod.

...
img.onload = function () {
    var iw = img.width;
    var ih = img.height;
    ...
}

to

...
img.onload = function () {
    var iw = $origimg.width();
    var ih = $origimg.height();
    ...
}
person eldi    schedule 17.03.2016