123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- $(function () {
-
- 'use strict';
-
- var console = window.console || { log: function () {} },
- $alert = $('.docs-alert'),
- $message = $alert.find('.message'),
- showMessage = function (message, type) {
- $message.text(message);
-
- if (type) {
- $message.addClass(type);
- }
-
- $alert.fadeIn();
-
- setTimeout(function () {
- $alert.fadeOut();
- }, 3000);
- };
-
- // Demo
- // -------------------------------------------------------------------------
-
- (function () {
- var $image = $('.img-container > img'),
- $dataX = $('#dataX'),
- $dataY = $('#dataY'),
- $dataHeight = $('#dataHeight'),
- $dataWidth = $('#dataWidth'),
- $dataRotate = $('#dataRotate'),
- options = {
- aspectRatio: 16 / 9,
- preview: '.img-preview',
- crop: function (data) {
- $dataX.val(Math.round(data.x));
- $dataY.val(Math.round(data.y));
- $dataHeight.val(Math.round(data.height));
- $dataWidth.val(Math.round(data.width));
- $dataRotate.val(Math.round(data.rotate));
- }
- };
-
- $image.on({
- 'build.cropper': function (e) {
- console.log(e.type);
- },
- 'built.cropper': function (e) {
- console.log(e.type);
- }
- }).cropper(options);
-
-
- // Methods
- $(document.body).on('click', '[data-method]', function () {
- var data = $(this).data(),
- $target,
- result;
-
- if (data.method) {
- data = $.extend({}, data); // Clone a new one
-
- if (typeof data.target !== 'undefined') {
- $target = $(data.target);
-
- if (typeof data.option === 'undefined') {
- try {
- data.option = JSON.parse($target.val());
- } catch (e) {
- console.log(e.message);
- }
- }
- }
-
- result = $image.cropper(data.method, data.option);
-
- if (data.method === 'getDataURL') {
- $('#getDataURLModal').modal().find('.modal-body').html('<img src="' + result + '">');
- }
-
- if ($.isPlainObject(result) && $target) {
- try {
- $target.val(JSON.stringify(result));
- } catch (e) {
- console.log(e.message);
- }
- }
-
- }
- }).on('keydown', function (e) {
-
- switch (e.which) {
- case 37:
- e.preventDefault();
- $image.cropper('move', -1, 0);
- break;
-
- case 38:
- e.preventDefault();
- $image.cropper('move', 0, -1);
- break;
-
- case 39:
- e.preventDefault();
- $image.cropper('move', 1, 0);
- break;
-
- case 40:
- e.preventDefault();
- $image.cropper('move', 0, 1);
- break;
- }
-
- });
-
-
- // Import image
- var $inputImage = $('#inputImage'),
- URL = window.URL || window.webkitURL,
- blobURL;
-
- if (URL) {
- $inputImage.change(function () {
- var files = this.files,
- file;
-
- if (files && files.length) {
- file = files[0];
-
- if (/^image\/\w+$/.test(file.type)) {
- blobURL = URL.createObjectURL(file);
- $image.one('built.cropper', function () {
- URL.revokeObjectURL(blobURL); // Revoke when load complete
- }).cropper('reset', true).cropper('replace', blobURL);
- $inputImage.val('');
- } else {
- showMessage('Please choose an image file.');
- }
- }
- });
- } else {
- $inputImage.parent().remove();
- }
-
-
- // Options
- $('.docs-options :checkbox').on('change', function () {
- var $this = $(this);
-
- options[$this.val()] = $this.prop('checked');
- $image.cropper('destroy').cropper(options);
- });
-
-
- // Tooltips
- $('[data-toggle="tooltip"]').tooltip();
-
- }());
-
- });
|