2013-09-11 1 views
2

enter image description here Я создал симулятор футболки на основе ткани. Все работает так, как ожидалось, за исключением одной детали, которую клиент хотел бы решить, поскольку это запрещает загруженное изображение, чтобы пройти мимо холста футболки (мы могли видеть его как фоновое изображение).Fabric.js определить границы/пределы для изображений

У меня есть это фоновое изображение в png и svg, но как я мог выполнить?

EDIT:

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

В этом последнем случае я знаю, что могу закрепить изображение в форме прямоугольника, но есть ли способ, которым я могу заставить изображение остановиться, когда оно попадает в линию, а не просто под ним?

Благодаря

+1

Пожалуйста, добавьте больше деталей к этому вопросу, например какой-то пример кода, показывающий эту проблему. –

+1

Объект «объект: перемещение», «объект: масштабирование» и т. Д. И соответственно ограничивают свойства объектов слева и сверху. – kangax

+0

Я обновил вопрос своими безумными навыками рисования –

ответ

4

По совету kangax в:

canvas.on ("object:moving", function (event) { 
     var el = event.target; 

     // suppose el coords is center based 

     el.left = el.left < el.getBoundingRectWidth()/2 ? el.getBoundingRectWidth()/2 : el.left; 
     el.top = el.top < el.getBoundingRectHeight()/2 ? el.getBoundingRectHeight()/2 : el.top; 

     var right = el.left + el.getBoundingRectWidth()/2; 
     var bottom = el.top + el.getBoundingRectHeight()/2; 

     el.left = right > canvas.width - el.getBoundingRectWidth()/2 ? canvas.width - el.getBoundingRectWidth()/2 : el.left; 
     el.top = bottom > canvas.height - el.getBoundingRectHeight()/2 ? canvas.height - el.getBoundingRectHeight()/2 : el.top; 
    }); 
+0

Да. Я следовал его советам и мне удалось что-то сделать. Благодаря! –

+0

Это работает достаточно хорошо, за исключением того, что операция drag & drop, по-видимому, не знает о сбросе координат, который вызывает своего рода магнитный эффект, когда вы должны перемещать столько пикселей в противоположном направлении, что вы можете пересечь границы, чтобы сделать объект отскочить от границ. – miracle2k

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

  • Нет связанных вопросов^_^