Git Product home page Git Product logo

cropper's Introduction

Cropper

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

Требует подключение excanvas!

var croper = $('.js-croper').Croper();  // Инициализируем плагин
croper.setZoom(0.5);  // Уменьшаем картинку на половину

Пример разметки:

<div class="js-croper" data-size="630x270"> <!--Обертка для Cropper, в ней указываются размеры видимой области--->
    <!--Панель с зумом (не обязательна)--->
    <ul class="js-croper-zoomer">
        <li class="js-croper-zoomer-in">+</li>
        <li class="js-croper-zoomer-out">&ndash;</li>
    </ul>
    
    <!--Картинка, которую необходимо обрезать--->
    <img src="http://cdn.voboyah.com/img/33590-1920x1200.jpg" alt="" class="js-croper-image">
    
    <!--Список доступных размеров в данной пропорции. Не обязателен-->
    <ul class="js-croper-sizes">
        <li class="js-croper-size active" data-size="630x270">
            <span>630x270</span>
        </li>
    </ul>
</div>

Опции Cropper и их значения по умолчанию:

{
  CSS_CLASS: 'js-croper', // Префикс для класса. Можно изменить для более удобной работы с  версткой
  zoomStep: {in: 1.1, out: 0.9 }, // Параментры зума. in - на сколько увеличивем, out - на сколько уменьшаем
  animate: true,    // Анимация при изменении размеров картинки, {Boolian} или {Function} в функцию передаются $crope - область в кторой лежит канвас, $canvas
  maxWidthSizeMenu: 170, // Максимальная ширина меню с размерами фото. Когда Cropper станет меньше этого размера, меню скроется
}

Метода Cropper:

Croper.getParams(); // Получает объект с состоянием картинки (координаты, зум, размеры видимой области и картинки)
Croper.getImage();  // Возвращиет jQuery объект картинки

Croper.setSize();   // Устанавливает размеры видимой области Cropper-а
Croper.setCoords(); // Устанавливает координаты
Croper.setZoom();   // Устанавливает зум

Croper.hideGUI();   // Скрывает интерфейс (зум + размеры картинки)
Croper.showGUI();   // Показывает интерфейс
Croper.toggleGUI(); // Если Cropper больше maxWidthSizeMenu, то интерфейс показывается и наоборот

Croper.restore();    // Возвращает холст к изначальному состоянию (координаты: 0,0, зум: 1)
Croper.destroy();   // Уничтажает объект, удаляет обработчики событий и заменяет <canvas> картинкой

Так же можно передавать некоторые значения через data-* атрибуты:

data-zoom="1.5" - Начальный зум картинки

data-x="100" data-y="150" - Начальные координаты картинки

Поддерживаются браузеры IE8++, Google Chrome, FF

TODO:

  • Починить контекстное меню
  • Рефакторинг кода
  • Покрыть тестами

cropper's People

Contributors

mrfranke avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.