11480 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Pour mes besoins applicatifs, j'ai trouvé sur internet un chouette plugin de signature qui fonctionne aussi bien sur PC que sur tablettes et smartphones, il s'agit de "signature pad" de szimek :

http://szimek.github.io/signature_pad/

Ce système fonctionne vraiment bien, sauf que dans mon cas, sur la page où j'affiche le bloc signature, je le met en "hide" par défaut, et j'ai créé un lien qui onclick me fait simplement un .show();

L'affichage fonctionne sans problème, sauf que le canvas n'écrit plus dans ces conditions (on ne peux plus signer, il ne se passe rien). Comme si le fait de faire ".show()" omettais de charger le canvas. Je ne sais pas trop comment expliquer.

J'ai remarqué cela-dit que si, sur pc, je change le plein écran de ma fenêtre (chrome) et que je remet en plein écran, ça s'active et ça marche. Pareil sur smartphone : ça fonctionne à condition que je scroll dans ma page ou que je zoom, dezoom. à partir de là, je peux signer dans le cadre.

Si j'enlève (pour tester) le 'style="display: none;"' de ma div id="signature-pad" class="m-signature-pad", tout fonctionne du premier coup sans avoir à redimentionner ma page ou zoomer dezoomer dedans, mais évidement ça s'affiche au chargement de ma page, or je veux que cela s'affiche uniquement en cliquant sur un bouton.

Avez-vous une idée de la provenance de ce bug ?

Existe-t-il une fonction jQuery permettant de "recharger" le contenu de ma div après l'avoir ".show()" ? Ou quelque chose de similaire...


Merci de votre aide.