Signature_pad: рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЧреВрдЧрд▓ рдХреНрд░реЛрдо, рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ (рдЪреМрдбрд╝рд╛рдИ>= 1080)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдорд╛рд░реНрдЪ 2019  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: szimek/signature_pad

рдирдорд╕реНрддреЗ,

рдкрд╣рд▓реЗ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рджреВрд╕рд░реЗ, рдореБрдЭреЗ рдХреБрдЫ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ _(рд╕реНрдорд╛рд░реНрдЯ рдлреЛрди рдФрд░ рдЯреИрдмрд▓реЗрдЯ)_ 1080 рдкрд┐рдХреНрд╕рд▓ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдЬреИрд╕реЗ рдПрдЪрдЯреАрд╕реА рдПрдо 9 рдкреНрд▓рд╕, рдореЛрдЯреЛ рдЬреА (6) рдФрд░ рдореЛрдЯреЛ рдЬреА 5 рдкреНрд▓рд╕, рд╕реИрдорд╕рдВрдЧ рдПрд╕рдПрдо-рдЯреА 385 рдПрдо) _ . рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдореИрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдкреГрд╖реНрда рд╕реНрдХреНрд░реЙрд▓ _(рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ)_ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рдЦреАрдВрдЪрддрд╛ рд╣реИ (рдЫрд╡рд┐ рджреЗрдЦреЗрдВ) ред рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ Google рдХреНрд░реЛрдо рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ _ (рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде) _ред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ -рдЧреВрдЧрд▓ рдХреНрд░реЛрдо-ред

Signature-pad Error

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рджреЗрдЦрдХрд░ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:
[Intervention] Ignored attempt to cancel a touch event with cancelable = false, for example because scrolling is in progress and cannot be interrupted signature-pad.js:63

рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ:
this._handleTouchEnd = function (event) { var wasCanvasTouched = event.target === self._canvas; if (wasCanvasTouched) { event.preventDefault(); self._strokeEnd(event); } };

рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛:
this._handleTouchEnd = function (event) { var wasCanvasTouched = event.target === self._canvas; if (wasCanvasTouched && event.cancelable) { event.preventDefault(); self._strokeEnd(event); } };

рдХрдВрд╕реЛрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрдирд╛ рдмрдВрдж рд╣реЛ рдЧрдИ, рд▓реЗрдХрд┐рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЕрднреА рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рд╕рдВрд╕реНрдХрд░рдг 2.3.0 рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ?. рдзрдиреНрдпрд╡рд╛рджред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдирдорд╕реНрддреЗ,

рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛ рд▓реЛрдб рдФрд░ рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рднреАрддрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдХреЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ (рдореИрдВ jQuery рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ):

$('canvas.sig_canvas').each(function(){
  var id = $(this).attr('id'); //Get the ID of signature
  var width = $(this).closest('.sig_container').width(); //Get the width of the signature container
  sig_pads[id].off(); //Unbind all events on signature pad (I have an array of them)

  if(!$(this).data('prev_width') || Math.abs(width - $(this).data('prev_width')) > 30){ //Resize threshold 30px, only resize if previous width has changed by 30 pxs
    var ctx = $(this)[0].getContext('2d'); //Get context
    $(this).attr('width', width); //Set canvas width
    ctx.canvas.width  = width; //Set context width
    $(this).data('prev_width', width); //Update prev_width for threshold
  }
  sig_pads[id].on(); //Rebind all signature events
});

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдирдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдФрд░ рд░рд┐рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдерд╛ рдпрд╛ рдпрджрд┐ рдпрд╣ рдХреИрдирд╡рд╛рд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдВрджрд░реНрдн рдЪреМрдбрд╝рд╛рдИ рдХреЛ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк scroll рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╢реНрд░реЛрддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╕рд╣реА рд╣реИ, рдпрд╛рдиреА "рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ"?

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВред рдХреНрдпрд╛ рдЖрдк рдХрд╣реАрдВ рдбреЗрдореЛ рд╕реЗрдЯ рдЕрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдВрдбреНрд░реЙрдЗрдб рдЯреИрдмрд▓реЗрдЯ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╢рд╛рдпрдж 1080 рд╕реЗ рдЕрдзрд┐рдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣реИред

рд╡рд┐рд▓рдВрдм рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╣рд╛рдБ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдореЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@szimek ,

рдХреЛрдбрдкреЗрди:

рдореИрдВрдиреЗ scroll рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╢реНрд░реЛрддрд╛ рдЬреЛрдбрд╝рд╛, "рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ" рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВред

@szimek

рдирдорд╕реНрддреЗ,

рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░ рдкрд╛рдП рд╣реИрдВ? @szimek : рд╕реА

рдирдорд╕реНрддреЗ,

рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛ рд▓реЛрдб рдФрд░ рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рднреАрддрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдХреЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ (рдореИрдВ jQuery рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ):

$('canvas.sig_canvas').each(function(){
  var id = $(this).attr('id'); //Get the ID of signature
  var width = $(this).closest('.sig_container').width(); //Get the width of the signature container
  sig_pads[id].off(); //Unbind all events on signature pad (I have an array of them)

  if(!$(this).data('prev_width') || Math.abs(width - $(this).data('prev_width')) > 30){ //Resize threshold 30px, only resize if previous width has changed by 30 pxs
    var ctx = $(this)[0].getContext('2d'); //Get context
    $(this).attr('width', width); //Set canvas width
    ctx.canvas.width  = width; //Set context width
    $(this).data('prev_width', width); //Update prev_width for threshold
  }
  sig_pads[id].on(); //Rebind all signature events
});

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдирдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдФрд░ рд░рд┐рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдерд╛ рдпрд╛ рдпрджрд┐ рдпрд╣ рдХреИрдирд╡рд╛рд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдВрджрд░реНрдн рдЪреМрдбрд╝рд╛рдИ рдХреЛ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред

@Steeveuk рдЪреАрдЬреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдмрд╕ SignaturePadInstance.off() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ SignaturePadInstance.on() рджреНрд╡рд╛рд░рд╛ рдкреБрдирдГ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕