Bonjour à tous,
Etant assez débutant dans l'utilisation de JQuery et Ajax, je me tourne vers la communauté, peut-être pourra-t-elle m'aider à comprendre certaines choses...
Je dois utiliser JCrop dans une page d'un site web. J'ai pu l'installer correctement mais maintenant je me trouve confronté à un problème de "sélection"...
J'ai une image qui fait, admettons, w:3000 par h:2000. J'en fais tout d'abord un clone redimensionné (750 x 500) pour l'affichage dans JCrop. J'affiche ensuite ce clone sur ma page afin de pouvoir le lier à JCrop.
Mon problème est le suivant : mon image devra respecter les dimensions finales suivantes : largeur >= 750, hauteur = 500 fixe.
J'ai déjà compris comment utiliser la propriété trueSize ainsi que minSize et maxSize, mais je n'arrive pas à faire en sorte que les propriétés soient respectées... En gros :
Sachant que dans mon exemple, le ratio d'affichage entre le clone et l'original est de 4, alors la zone de crop devrai être au minimum de w:187.5 à l'affichage (750 / 4) et de h:125 (500 / 4).
Mais je ne peux pas utiliser la propriété "ratio" car au final la largeur n'a pas à être fixe, mais simplement plus grande ou égale à 580.
Le truc, c'est qu'il faudrai que je recalcule "on the fly" à chaque modification de la zone quelle est la largeur minimum à respecter et la réaffecter à la propriété minSize pour toujours respecter les valeurs finales...
Actuellement, je peux avoir une image qui ne respecte pas ma donnée car je ne sais pas comment réaffecter cette valeur à la volée...
Je sais qu'il y a un gestionnaire d'évènement "onChange" sur JCrop, mais je ne sais pas comment accéder à la propriété voulue...
Voilà le code que j'ai pour l'initialisation de JCrop :
Le but serait donc de pouvoir réattribuer à la propriété minSize une nouvelle valeur lors de l'appel à showPreview, mais je n'arrive pas à comprendre comment faire... Je n'ai pas d'accès ni à api.options ni à api.opt... Je ne sais d'ailleurs même pas si le fait de réaffecter à la volée va permettre de prendre en compte la nouvelle valeur (peut-être une sorte de fonction redraw ou autre...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 var api = undefined; // equivalent de $(window).load(function() {...} avec Drupal Drupal.behaviors.watcho_picture = function( context ) { api = $.Jcrop( "#standard_picture", { onChange : showPreview, onSelect : showPreview, minSize : [Drupal.settings.watcho_picture.previeww, Drupal.settings.watcho_picture.previewh], maxSize : [10000, Drupal.settings.watcho_picture.previewh], trueSize : [Drupal.settings.watcho_picture.truew, Drupal.settings.watcho_picture.trueh], } ); }
Bref... Si quelqu'un avait la gentillesse de m'expliquer comment je peux accéder aux propriétés de mon objet JCrop je lui en serait reconnaissant car là je galère...
D'avance merci pour vos suggestions.
Cordialement.
Partager