çŸåšãããã¥ã¡ã³ãããºãŒã ããã«ã¯ãã¢ãã€ã«ã§ããã©ã¹/ãã€ãã¹ãã¿ã³ãæŒãå¿ èŠããããŸãã ç¹ã«ãã³ãããŒãºãŒã ãã¢ã¯ãã£ãã«ãªã£ãŠããã®ã§ãããã¯æ¬åœã«å¥åŠã§ãã ã¢ãã€ã«ã§ã®æåã®æ¹æ³ã¯ããããããèªç¶ãªããµã€ãºã§ã¬ã³ããªã³ã°ããWebããŒãžã®ããã«ãã©ãŠã¶ã«ãºãŒã ãå¶åŸ¡ãããããšã ãšæããŸãã
ãããç§ãã¡ãããããã£ãããšã§ãããV1ã§ã¯ãºãŒã ã®ãã³ãã«åé¡ããã£ãããããºãŒã ãã¿ã³ã䜿çšããå¿ èŠããããŸããã
åé¡ã«ã€ããŠè©³ããæããŠããã ããŸããïŒ PDF.jsãããŸãæ©èœãããããã«ããããããããã«åªå é äœãä»ããããšãã§ãããšæããŸãã
ãã®å Žåããã©ãŠã¶ã«ãºãŒã ãå®è¡ãããããªããšæããŸãã pdf.jsãããã¥ã¡ã³ãã800x600ã§ã¬ã³ããªã³ã°ãããã³ããºãŒã ã€ã³ãããšããã©ãŠã¶ãŒã¯ãã®800x600ã³ã³ãã³ããæ°ããé«è§£å床ã§ã¬ã³ããªã³ã°ãç¶ããŸããããã¯ãããã€ã¹ã®è§£å床ãšæ¹æ³ã«ãã£ãŠã¯ãããããã«èŠããå ŽåãšèŠããªãå ŽåããããŸãããºãŒã ããŸããã ïŒpdf.jsã¯ãŸã svgã§ã¯ãªãcanvasãã¬ã³ããªã³ã°ã«äœ¿çšããŠãããšæããŸããïŒïŒ
@Snuffleupagus @timvandermeijã©ã¡ãããããã«åãçµãããšã«èå³ããããŸããïŒ gaiahttps ïŒ//github.com/mozilla-b2g/gaia/blob/master/shared/js/gesture_detector.jsã®å ±æã©ã€ãã©ãªã䜿çšããã®ã¯ããã»ã©é£ããããšã§ã¯ãªãããã§ã
@brendandahlééããªãããããšãªã¹ãã«èŒããŠãããã«å®éšãå§ããŸãã https://github.com/mozilla-b2g/gaia/blob/862de8489b648a9af7e8a5b88be031b5479404ba/apps/camera/js/panzoom.js#L15ã¯ããtransformãã2æ¬ã®æã®ãã³ãã€ãã³ãã«äœ¿çšããããããè¯ãäŸã®ããã§ãã ããã¯ã¢ãã€ã«ã§éåžžã«é »ç¹ã«äœ¿çšãããŠããã®ã§ããºãŒã ãããã³ããæ©èœããã®ã§ããã°æ¬åœã«çŽ æŽãããã§ãããã
ç§ã¯ããã«åãçµãã§ããŸãã èå³ã®ãããŠãŒã¶ãŒã¯ã httpsïŒ//github.com/timvandermeij/pdf.js/tree/pinch-to-zoomã§é²æç¶æ³ã確èªã§ããŸãã ã¿ãã¬ãããšæºåž¯é»è©±ã§ãã§ã«ãã³ãããŒãºãŒã ã³ãã³ãããã£ããããŠããŸãããå®éã®åã¬ã³ããªã³ã°ã ãã§ãªãã粟床ãæ¹åããå¿ èŠããããŸãïŒå€ãã¹ã±ãŒã«ã§æ°ããã¹ã±ãŒã«ãèšç®ããæ¹æ³ãèŠã€ããå¿ èŠããããŸãïŒããã³æ°ããäžéç¹ããŸãã¯ãã®ä»ã®æ¹æ³ïŒã
@timvandermeijãããå®è£ ããåã«è¡ãå¿ èŠããããããããªãããšã®1ã€ã¯ããºãŒã ãæ¹åããããšã§ãã æåã«csså€æã䜿çšããŠãã£ã³ãã¹ãã¹ã±ãŒãªã³ã°ãã次ã«åã¬ã³ããªã³ã°ãéå§ããåã¬ã³ããªã³ã°ãå®äºãããæ°ãããã£ã³ãã¹ã衚瀺ããããšã«ã€ããŠèª¬æããŸããã
ããã§ã®æåã®è§£æ±ºçã¯ããã©ãŠã¶ãŒã®ã³ã³ããžã¿ãŒã«äŸåããŠäžæçãªãºãŒã ïŒãã³ããŸãã¯ããã«ã¿ããäžã®ã¢ãã¡ãŒã·ã§ã³ïŒãå®è¡ããpdf.jsãæ°ãã解å床ã§åæç»ããããšã§ãããšåŒ·ãä¿¡ããŠããŸãã ããã§ã®æ²ããéšåã¯ãçŸåšãã³ã³ãã³ãããºãŒã ã®å€æŽãèªèããŠãããããã£ã³ãã¹ã®ãµã€ãºãæ°ãã解å床ã«å€æŽããŠãæ©èœããªããšæããŸãã ãããåŠçããã«ã¯ããã£ã³ãã¹ã®ä»æ§ã匷åããå¿ èŠããããããããŸããã
ç§ã¯hammer.jsã§ããçšåºŠã®æåãåããŸããã ãã©ãŠã¶ã®ããã€ãã£ãããã³ããèš±å¯ãïŒPDFããŒãããïŒããã³ããããšãã«ãscale = scale * zoomã§PDFãã£ã³ãã¹ãåæç»ãããã£ã³ãã¹ã«cssãtransformïŒscaleïŒ1 / zoomïŒããæå®ããŸãã ãããã£ãŠããã¹ãŠãåãå Žæã«é 眮ãããŸãïŒç¹ã«ããã¹ããšã¢ã³ã«ãŒïŒã ãã¡ããšèŠããŸãã
@skruseãã°ããåã«ã
ãããskruseããºãŒã çµäºæã®ãºãŒã æ¯ãã©ã®ããã«èšç®ã§ããŸãããïŒ
var zoom = document.documentElement.clientWidth / window.innerWidth;
ãŸããããã©ãŒãã³ã¹ã®åé¡ãçºçããŸããããã¹ã±ãŒã«ããã©ã¡ãŒã¿ã®èŠ³ç¹ãããã¢ãã€ã«ããã€ã¹ã§ãé ãããããºãŒã ã€ã³ãããŠã¯ãããŸããã 2ã3ãäžçªå€§ãããšæããŸãã
ããã¯+2
誰ãããã®2幎åã®åé¡ã®è§£æ±ºçãæã«å ¥ããŸãããïŒ
ç§ã®ç¥ãéããããã«ã€ããŠã¯äœããããŠããŸããã https://github.com/mozilla/pdf.js/issues/2582#issuecomment-30316908ã§ä»¥åã®ã³ã¡ã³ããåç §ã
ããã«å¯Ÿãã解決çãèŠãããšæããŸãã çŸæç¹ã§ã¯ããããpdf.jsã®äœ¿çšã劚ããŠããå¯äžã®çç±ã§ãã
:(
ãã³ããºãŒã ã¯çŽ æŽãããã§ãããïŒ pdf.jsã䜿çšãããã³ããºãŒã ãšã¹ã¯ã€ãããŒãžãåãããã®jqueryãã©ã°ã€ã³ãèŠã€ããŸããã http://touchpdf.net/demo/index.htmããããæåããpdf.jsã§ãã«ããããŠããã°è¯ãã§ããã:-)
+1ããã§ãããèŠããã§ãã
+1ããŸããhammer.jsã䜿çšããŠã€ãã³ãããã£ããã£ããpdf.jsãºãŒã é¢æ°ãåŒã³åºãä»ã®äŸã¯ãæ¯èŒçãã¯ãªãŒã³ãªãã¡ãœããã§ã¯ãããŸãããïŒ
@sporkmanãæçµçã«è¡ã£ãããšã¯ããã£ã³ãã¹ãéåžžã«å€§ããã¬ã³ããªã³ã°ããŠããããã€ãã£ããã©ãŠã¶ãŒãºãŒã ã䜿çšããŠãºãŒã ãèš±å¯ããããšã§ããïŒç§ã®ã¢ããªã¯ã¿ããããã€ã¹çšã«èšèšãããŠããŸãïŒã å¿ èŠã«å¿ããŠãœãŒã¹ãå ±æã§ããŸãã
@rorysmorrisã¹ã¯ããŒã«äžã«ãã³ããããšãã«ããã€ãã£ããã©ãŠã¶ã®ãºãŒã ãç¡å¹ã«ããæ¹æ³ãã©ã®ããã«åé¿ããŸãããïŒ ãŸããpdf.jsã«hammer.jsãå®è£ ããŸãããããã®ç¹å®ã®åé¡ãåé¿ã§ããŸãã
touch-action
CSSããããã£ã䜿çšããããšããŸãããïŒ
https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action
2016幎10æ5æ¥15:15ããtoplay3ã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
@rorysmorris https://github.com/rorysmorrisã©ããã£ãŠååŸããã®ã§ããïŒ
ã¹ã¯ããŒã«äžã«ã€ãŸããšãã«ãã€ãã£ããã©ãŠã¶ã®ãºãŒã ãç¡å¹ã«ããããšã«ã€ããŠïŒ ç§ã¯æã£ãŠããŸã
ãŸããpdf.jsã«hammer.jsãå®è£ ããŸãããããã®ç¹å®ãåé¿ããããšã¯ã§ããŸãã
åé¡â
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/mozilla/pdf.js/issues/2582#issuecomment -251670785ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/ABTUT83E287dv4LSs4T_TGnzwe8yqCMYks5qw6LmgaJpZM4AXvZ2
ã
@ Rob--W
ããã倩æïŒ ä»å®ç§ã«åäœããŸãïŒ æ¬åœã«ããããšãïŒ
ãã®åé¡ã¯ãã€å®è£ ãããäºå®ã§ããïŒ ãã®å·ãæåã«æçš¿ãããŠããããªãã®æéãçµã¡ãŸããã èšããŸã§ããªã+1ïŒ
ãŸãã1幎åããæ¯é±ãã®åé¡ããã§ãã¯ããŠããŸãã ãããã³ã¢ã«å ¥ããããhammerjsã®ã¢ããªã³ãšããŠäœ¿çšãããšçŽ æŽãããã§ãããã
ãã®ã¹ã¬ããããã建èšçã«ããããã«ãUIã®èŠä»¶ã以äžã«ç€ºããŸãïŒèª°ããåé¡ã®è§£æ±ºãæ¬åœã«å©ããŠã¹ããŒãã¢ãããããå ŽåïŒãPDF.jsã«åºæã®ãã®ã¯ãããŸããã
äœé»åããã€ã¹ã§ã¯ãã¹ãŠã®ããŒãžãæ倧解å床ã§ãã€ã³ãããããªããããåŸè ã¯éèŠã§ãã 誰ãããããã¿ã€ããæã£ãŠããå Žåã¯ãIRCã§ç§ãèŠã€ããŠãå¯èŠæ§ãšã¹ã±ãŒã«ã€ãã³ãã®ããã«PDFPageViewãããã¯ããã®ãæäŒããŸãã 5-good-beginner-bugãèšå®ããŸããïŒ
ããã¯åå¿è åãã®ãã°ã§ããããšã«åæããã®ã§ããã®ããã«ã©ãã«ãä»ããŸãã
ããã¯ã¢ãã€ã«ã ãã§ãªãã2æ¬æã®ãã©ãã¯ããããºãŒã ïŒMacã®å ŽåïŒããµããŒãããæ©èœãªã¯ãšã¹ããåãåã£ãŠããŸãã
ç°¡åãªèª¿æ»ã®çµæããºãŒã ãžã§ã¹ãã£ããµããŒãããã¯ãã¹ãã©ãŠã¶ã®æ¹æ³ã¯ãŸã ãªãããšãããããŸããã
+1
@ toplay3ãš@ Rob--Wãããæ©èœãããããã«äœãããŸãããïŒ ãtouch-actionïŒauto;ããè¿œå ããŸããïŒ äœã«ïŒ ãããŠãããªãã¯ä»ã«äœãããŸãããïŒ ããããšãïŒ
ããã«ã¡ã¯çãããç§ããã³ãããŠãºãŒã ãæ©èœãããããšã«èå³ãæã£ãŠããã»ãšãã©ã®äººã®ããã«ããã³ããŒã®ãããªå€éšã©ã€ãã©ãªã䜿çšããŠãã誰ããããããããšãã§ããŸãããïŒ ããªãããããäœã£ãå Žåãã»ããã¢ããã¯äœã§ããïŒ @rorysmorris @ toplay3 @ Rob--Wããããšã
ð
@rorysmorrisäžèšã®è³ªåã«ã€ããŠäœãã¢ããã€ã¹ã¯ãããŸããïŒ ããããšã:)
ããã«ã¡ã¯@ squallstar-æåã¯JSãã³ãã¢ã³ããºãŒã ã©ã€ãã©ãªã䜿çšããŠãããåŠçããããšããŸããããããã€ãã®åé¡ãèŠã€ãããŸããã ããã¯ç§ãæãããã«ãºãŒã ããŸããã§ãããã€ãŸãããããçã«ããªã£ãŠããå Žåã端ãç»é¢ã®ç«¯ããé¢ããããªããšãã«ãPDFãã£ã³ãã¹ãå®å šã«ç»é¢å€ã«ç§»åãããããšãã§ããŸããã çµå±ãç§ã¯ã¢ãã€ã«ãã©ãŠã¶ã«çµã¿èŸŒãŸããŠãããã€ãã£ããºãŒã ã䜿çšããŠãã³ã/ãºãŒã /ããã²ãŒãããŸããã 衚瀺ãããŠãããã¯ã»ã«ãµã€ãºã®3åã§PDFãã¬ã³ããªã³ã°ããããã«PDF.jsãèšå®ããCSSã§çž®å°ããã®ã§ããºãŒã ã€ã³ããŠãããªãé®®æãªãŸãŸã§ãããã«ããå¿ èŠãªå Žåã¯ãç§ã®å®çšçãªäŸã玹ä»ã§ããŸããå®è£ ã
@rorysmorrisããããšããç§ã«èŠããŠïŒãŸãã¯ã¹ãããããéã£ãŠïŒããŸãã¯ãããã©ã®ããã«å®è£ ããããæããŠããã ããã°å¹žãã§ãã ãããããé¡ãããŸãð
@squallstarã¯ãç§ã®ãµã€ãã®é£çµ¡ãã©ãŒã ããã¡ãŒã«ãéã£ãŠãããŸããä»æ¥ã®åŸåã«ãã¢ããhttp://rorymorris.co.uk
@squallstarããã¯å®éã«ã¯è§£æ±ºçã§ã¯ãããŸããããäžçš®ã®åé¿çã§ãã çæã¯æ¬¡ã®ãšããã§ããããã©ãŒãã³ã¹ãçµæã«ã¯ããã€ã¹ã®äŸåé¢ä¿ãããããºãŒã ã¯ç¡éã§ã¯ãããŸããã
JavaScriptã䜿çšããŠãããã®ã¿ã¹ã¯ãå®è¡ããã®ã§ã¯ãªãããã€ãã£ãã®ã¹ã¯ããŒã«ãšãã³ã䜿çšããããšã§ãããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã æ倧ãºãŒã ã¬ãã«ã¯ã¡ã¿ãã¥ãŒããŒãã¿ã°ã䜿çšããŠç°¡åã«æ§æã§ããŸãããã©ã¹ã¿ã©ã€ãºãããç»åãç¡éã«ãºãŒã ããã人ã¯ããŸããïŒ ã¡ãªã¿ã«èŠæ ãã®è¯ããJS-ImageResizerãã©ã€ãã©ãªïŒ @MickL
ããã©ãŒãã³ã¹ã¯ãã£ãšæšæž¬ã§ããã 暪åã@ 2208pxå¹ ã§iPhonePlusã䜿çšãããšããŸãã ããã§ã6624pxã®ãã£ã³ãã¹ãã§ããŸããã PDFã®è€éããšããŒãžæ°ã«ãã£ãŠã¯ãHTMLããã¹ããã°ã©ãã£ãã¯ãªã©ã§3ã€ã®ã¬ã³ããªã³ã°ããã6000pxãã£ã³ãã¹ãããå ŽåããããŸãã
ããªãã®è§£æ±ºçã¯å€ãã®äººã«ãšã£ãŠçŽ æŽããããšæããŸãã ããããããªãã説æããããã«ãå®éã«PDF.jsã®ãºãŒã ãšåã¬ã³ããªã³ã°ãããªã¬ãŒãããããåœã®ãºãŒã ã§ã:)
確ãã«ããã®èŠ³ç¹ããã®ããã©ãŒãã³ã¹ã®é¢ã§ã¯çŽ æŽãããããšã§ã¯ãããŸããã ãã®ç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ã300ããŒãžä»¥äžã®PDFãiPadïŒRetinaïŒãµã€ãºã§ã¬ã³ããªã³ã°ããããããã®äžã«æç»ãã£ã³ãã¹ãé 眮ããå¿ èŠããããŸããã
PDF.jsã¯ãã¬ã³ããªã³ã°ãããPDFããŒãžãçŽ10ããŒãžã§ãã©ãŠã¶ãŒïŒiOS SafariïŒãã¯ã©ãã·ã¥ããããããæçµçã«ã¯ãå/次ã®ãã¿ã³ã§äžåºŠã«1ã€ã®PDFããŒãžã衚瀺ããã ãã§æžã¿ãŸããã çæ³çã§ã¯ãããŸããïŒ ãããŠãç§ã¯åæããŸããPDF.jsã«çµã¿èŸŒãŸããŠãããã€ãã£ããºãŒã æ©èœã¯ãã£ãšè¯ãã£ãã§ãããã
ãã³ããºãŒã ã®äŸãå®è¡ããã«ã¯ãkamihq.comããã§ãã¯ã¢ãŠãããŠãã ãã
@rorysmorrisæšæ¥ã®å€æ¹ããåãåãããã©ãŒã ããã¡ãŒã«ããéãããŸãããããªãã話ããŠããäŸãéã£ãŠããã ããŸãããã :)ããããšã
å®çšçãªäŸïŒ@ rorysmorris ã@ Rob--Wãªã©ïŒãæã£ãŠãã人ã¯èª°ã§ãå ±æã§ããŸããïŒ
@rorysmorrisç§ã¯ããªãã®ãŠã§ããµã€ããéããŠããªãã«é£çµ¡ããããšããŸããã 誰ããããã®å®çšçãªäŸãæã£ãŠãããªããããªãã¯å ±æã§ããŸããïŒ
@ltullman @ hetalv985ç§ã¯ãããèªåã§å®è£ ããŠåäœãããããšãã§ããŸãããããã§ç§ã®èŠç¹ã確èªããŠãã ããïŒ
https://gist.github.com/squallstar/1d720e93eabe7f60dc61b547d2c19228
ãããviewer.htmlã®æåŸã«è²Œãä»ããã ãã§ãðããã ãã§ãã
ããããšãsquallstarã ãã ããviewer.htmlã¯äœ¿çšããŠããŸããã iOSã¢ãã€ã«ã¢ããªã®divã¿ã°å ã§PDFãã¬ã³ããªã³ã°ããŠããŸãã ãã®å Žåããã®æ©èœãã©ã®ããã«äœ¿çšããŸããïŒ ãã¥ãŒã¢ãã¡ã€ã«ãå«ããå¿ èŠããããŸããïŒ
ãããã£ãŠãéåžžã«ãã䌌ãé¢æ°handleMouseWheel
ãããŸãã ã¿ãããžã§ã¹ãã£ããã³ããŒjsã§ãŸã£ããåãæ©èœã䜿ã£ãŠã¿ãŸãããïŒ ããã§ã¯ãããã¯1ã2æéã§ä¿®æ£ãããŸãããïŒ
æ®å¿µãªãããããã¯ããã»ã©ç°¡åã§ã¯ãããŸããã https://github.com/mozilla/pdf.js/issues/2582#issuecomment-30316908ã§ç§ã®ä»¥åã®ã³ã¡ã³ããåç §ããŠãã ããã ã¿ãããžã§ã¹ãã£ã®éãå¶éããŠããã«ã¿ãå€æŽããããã³ã«ãã£ã³ãã¹ãåã¬ã³ããªã³ã°ãããªãããã«ããå¿ èŠããããŸããããã¯ãããã©ãŒãã³ã¹ã®å€§ããªåé¡ã§ãã 誰ããããã«åãçµãæ°ããããªããPRãæåºããŠãã ããããããŠç§ãã¡ã¯ãããã¬ãã¥ãŒããŸãã
ãããå¯äžã®åé¡ãªã... :)
ãŸãããctrl + mousewheelãã§ã¯ãGoogleãããã®ããã«ã«ãŒãœã«äœçœ®ãŸã§ã¹ã¯ããŒã«ããããšã«æ°ã¥ããŸããã ãã ããã¹ã¯ããŒã«ããŒïŒããŒãžèªã¿èŸŒã¿æã®ããã©ã«ãïŒããªãå Žåãããã¯æ©èœããŸããã ãããã£ãŠããããèªç¶ã«æããã«ã¯ããã³ããºãŒã ãšããŠã¹ãã€ãŒã«ãºãŒã ã«å¿ èŠãªå Žåã¯ããã£ã³ã°ãäœæããå¿ èŠããããŸãã
ããŠã¹ãã€ãŒã«ãºãŒã ãšãã³ããºãŒã ãåãæ©èœã䜿çšããå Žåã¯ãããã«äŸ¿å©ã§ãã
ããªãã®ã³ãããã¯ãã§ã«è¯ãããã§ãã å€åããã©ãŒãã³ã¹ã¯ãã¯ãåé¡ã§ã¯ãããŸãããããã¯3幎以äžåã§ãã ãã¡ãããæåã®è§£æ±ºçã¯æ¬¡ã®ãšããã§ããéå§ãã³ã->ãŒããããºãŒã ->çµäºãã³ã->å®éã«PDFããºãŒã ããŸãã ãŸãã user-scalable=no
ã¯ææ°ã®iOSã§ã¯åäœããªããªããŸããã ãããã£ãŠã preventDefault()
ãå¿
èŠã«ãªãå ŽåããããŸãã
ç§ã¯ããã«å€ãã®æéãæè³ããŸããã å®éã«ã¯å¯èœã®ããã§ããã解決ã§ããªãã£ãåé¡ãããã€ããããŸãã
ããããããã¯ãã¹ãŠè§£æ±ºå¯èœã§ãããiOS 10ã§ã¯user-scalable=no
ç¡å¹ã«ãªã£ãŠããå Žåã§ãããŒãžãºãŒã ãå¯èœã§ãã ãã®ããããã³ãã§æ°åpreventDefaultïŒïŒãæ©èœãããããŒãžå
šäœããºãŒã ãããŸãã ããã¯ãšã³ããŠãŒã¶ãŒã«ãšã£ãŠå€§ããªåé¡ã«ã€ãªãããŸãïŒæãåºãå¯äžã®æ¹æ³ã¯ããŒã«ããŒãããã«ã¿ããããããšã§ãïŒã
@MickLè©ŠããŠã¿ãŸããã CSSããããã£ãpointer-eventsïŒnoneããã¯ã©ã¹pdfViewerãšããŒãžã«è¿œå ããããšã§ããã³ããºãŒã ãã®ãã£ã³ã»ã«ãåé¿ã§ããŸããïŒãããŠãviewerContainerãããã«ã¿ããã€ãã³ãããã£ã¹ãããããŠããŒãžå šäœããºãŒã ããªããšãã«stopPropagation + preventDefaultãåŒã³åºãããšã§iOSïŒã
å€æŽãããããŠã¹ãã€ãŒã«ã¡ãœããã䜿çšãããšãå®å šãªãºãŒã äœçœ®ã€ãã³ããçºçããªããšããåãåé¡ãçºçããŸãïŒé©çšãã次ã®ã¹ã±ãŒã«ãçŸåšã®ãäžéäœçœ®ããŸãã¯ã¿ãŒã²ãããããã³ãäžéäœçœ®ãã®ãã«ã¿ãæž¡ããŠç¥ãïŒ pdfViewer.container.scrollLeftããã³pdfViewer.container.scrollTopã«ãã£ãŠç®¡çããããå·Šãå³ãäžãäžã«ç§»åããéã ããããã¿ã€ã ã¢ãŠãã«ãã£ãŠãèŠèŽè ããã¹ãŠã®ããã«ã¿ããã€ãã³ãã§ã¬ã³ããªã³ã°ã§ããªããªããšã©ãŒãåžžã«çºçããŠããããã§ãã
ãã¹ãŠã®ã¹ã±ãŒã«ãã«ã¿ã§ãã¹ãŠãã¬ã³ããªã³ã°ããªãããã«ããããã«ããããã®CSSã¹ã±ãŒã«å€æãã©ãã«é©çšãããã«ã€ããŠã®ãã³ãã¯ãããŸããïŒ
@betovidalååã®æçš¿ããæ°ãæãçµã¡ãŸããã PDF.jsã§ãã³ããºãŒã ãæ©èœãããããã®æŽæ°ãè¡ããŸãããïŒ ç§ã¯ãããå¿
èŠãšããä»äºã®ããã®ãããžã§ã¯ãã«åãçµãã§ããŸãã
ãã¶ãç§ãã¡ã¯äžç·ã«äœããç解ããããã«åãããšãã§ããŸããïŒ
@squallstariOSã§ãœãªã¥ãŒã·ã§ã³ãç°¡åã«ãã¹ãããŸããã ãããŠãããŸã§ã®ãšãããããã¯ç§ã®ããã«åããŠããŸãïŒ ãœãªã¥ãŒã·ã§ã³ãå ±æããŠããã ãããããšãããããŸãð¯
@vuinguyenããããšãïŒ ç§ããããããªãã®ããã«åããŠããããã§ã;ïŒ
+1
@squallstarã®ã³ãŒããPRã«çµ±åããåžæã¯ãããŸããïŒ çŸåšããŠãŒã¶ãŒãã¢ãã€ã«ããã€ã¹ããã³ãããŠãºãŒã ããããšãããšãã¹ã¯ããŒã«ããããã¯ããããããã«ããã²ãŒãããããã«ããŒãžããªããŒãããå¿ èŠããããŸãã å°ããªã+ããã¿ã³ãšã-ããã¿ã³ã䜿çšããŠããã²ãŒãããããšã¯ã2018幎ã®ã¢ãã€ã«èŠèŽè ã«ãšã£ãŠã¯çŽæã«åããŸãã
ãã³ããºãŒã ã¯ãiOS 10以éã®iOSã§ã¯ãå£ããŠããŸããããã¹ãŠãå®å šã«å®è£ ãããŠããŠããSafariã¯ãã¹ãŠãå°ç¡ãã«ããŸãã
ããã¯iOSåºæã®åé¡ã§ããïŒ Androidã§pdfjsãæäŸããPDFããã³ããºãŒã ããããšã¯å¯èœã§ããïŒ
ãã©ãŠã¶ã«ãã£ãŠç°ãªããŸãã iOSãã©ãŠã¶ã ãããuser-scalable = noããç¡èŠãããšæããŸãã
çŸåšãããã¥ã¡ã³ãããºãŒã ããã«ã¯ãã¢ãã€ã«ã§ããã©ã¹/ãã€ãã¹ãã¿ã³ãæŒãå¿ èŠããããŸãã ç¹ã«ãã³ãããŒãºãŒã ãã¢ã¯ãã£ãã«ãªã£ãŠããã®ã§ãããã¯æ¬åœã«å¥åŠã§ãã ã¢ãã€ã«ã§ã®æåã®æ¹æ³ã¯ããããããèªç¶ãªããµã€ãºã§ã¬ã³ããªã³ã°ããWebããŒãžã®ããã«ãã©ãŠã¶ã«ãºãŒã ãå¶åŸ¡ãããããšã ãšæããŸãã
ç§ã«ã¯ãããããã¹ãŠãç©èªã£ãŠããŸãã ããã¯ç¹å®ã®æ©èœã§ã¯ãªããã¢ãã€ã«ãšã¯ã¹ããªãšã³ã¹ãžã®ã¢ãããŒãã ãšæããŸãã
iOSãã©ãŠã¶ã ãããuser-scalable = noããç¡èŠãããšæããŸãã
æ£ããã
ãBoxContentPreviewãïŒPDFJSã䜿çšããŠPDFã衚瀺ããïŒãããã«é©ããå®è£ ã§ããããšãããããŸããã ããã¯åœŒãã®èŠèŽè ã®Codepenã§ãïŒ
https://codepen.io/box-platform/pen/rmZdjm
ãããŠãããã¯åœŒãã®ä¿®æ£ã®ããã®ãã«ãªã¯ãšã¹ãã§ãïŒ
https://github.com/box/box-content-preview/pull/567
圌ãã®è§£æ±ºçã«åºã¥ããŠã誰ããPDFJSã«äŒŒããããªãã®ãäœãããšãã§ããã®ã§ã¯ãªãããšæããŸããã èªåã§å®è£ ããŠãã³ãŒããæçš¿ããããšæããŸãã ä»ã®èª°ãïŒããããç§ãããçµéšãè±å¯ãªäººïŒãååããŠè©ŠããŠã¿ãããšãã§ããã°çŽ æŽããããšæããŸãïŒ
@ amurillo17ãªã³ã¯ãããããšãã Boxãœãªã¥ãŒã·ã§ã³ã¯çŽ æŽãããèŠããŸãã ãã®ãããªãã®ãpdfjsã§åäœããã®ãèŠããã§ãã é²æç¶æ³ããç¥ãããã ããã
ãã®åé¡ã®è¯ã解決çã¯ãããŸããïŒ
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ æã£ãŠããçŽ æŽãããæ©èœã«ãªããŸãïŒ
æŽæ°ã¯ãããŸããïŒ ããããšã
ãã®æ©èœãæ¢åã®ãã¥ãŒã¢ã«è¿œå ããç°¡åãªæ¹æ³ã¯ãããŸããïŒ
ãã®æ©èœãæ¢åã®ãã¥ãŒã¢ã«è¿œå ããç°¡åãªæ¹æ³ã¯ãããŸããïŒ
çªå·ã
@prohtexããŒããããã¯ããªãæ²ããã§ãã ãã®ãããªæ©èœããããããã¹ãŠã®å¹Žã®åŸã«ããã«è¿œå ãããããšãé¡ã£ãŠããŸãã
@prohtexããŒããããã¯ããªãæ²ããã§ãã ãã®ãããªæ©èœããããããã¹ãŠã®å¹Žã®åŸã«ããã«è¿œå ãããããšãé¡ã£ãŠããŸãã
誰ããã¹ãããã¢ããããŠã³ãŒããPRã«çµ±åãããšãã«ã®ã¿è¿œå ããïŒæ²ããããšã«ç§ã§ã¯ãããŸããïŒãããã§ãæ°å¹Žãããå¯èœæ§ããããŸãã
åé¿çã¯ãããŸããããFirefox forAndroidãã¢ããªã³ã®iOSãæ°ã«ããªãããããAndroidã®ã¿ãã§ãã
https://github.com/M-Reimer/android-pdf-js/blob/master/patches/pdfjs-pinch-gestures.js
ç§ã®Makefileã¯ãããããweb /viewer.jsãã«è¿œå ããã ãã§ãã ã¿ããã€ãã³ãã«ç»é²ãããã³ããžã§ã¹ãã£ããã¿ã³ã¯ãªãã¯ã«å€æããŸãã
åé¿çã¯ãããŸããããFirefox forAndroidãã¢ããªã³ã®iOSãæ°ã«ããªãããããAndroidã®ã¿ãã§ãã
ããã¯ç§ã®iPadã§ãåäœããŸãããå°ãé ãæããããŸãèªç¶ã§ã¯ãããŸããã ãã³ããããã³ã«1ã¹ããããºãŒã ããŸãã ãããã£ãŠããºãŒã ããã«ã¯æãé¢ãå¿ èŠãããããã³ãããè·é¢ãã©ãã ãé¢ããŠããŠãããŸããŸããã ããã¯æ£åžžãªåäœã§ããããããšãããã€ã¹åºæã®ãã°ã§ããïŒ ãšã«ããããããšããããã¯æ£ããæ¹åãžã®äžæ©ã ããã§ãã
ããã¯ç§ã®iPadã§ãåäœããŸãããå°ãé ãæããããŸãèªç¶ã§ã¯ãããŸããã ãã³ããããã³ã«1ã¹ããããºãŒã ããŸãã ãããã£ãŠããºãŒã ããã«ã¯æãé¢ãå¿ èŠãããããã³ãããè·é¢ãã©ãã ãé¢ããŠããŠãããŸããŸããã ããã¯æ£åžžãªåäœã§ããããããšãããã€ã¹åºæã®ãã°ã§ããïŒ ãšã«ããããããšããããã¯æ£ããæ¹åãžã®äžæ©ã ããã§ãã
ã³ãŒããèŠããšãããã¯å®è¡å¯èœãªè§£æ±ºçã§ã¯ãªããé©åãªåé¿çã§ããããŸããã ããã¯ããºãŒã ã€ãã³ããç£èŠããjQueryã§[-] [+]ãã¿ã³ã®ã¯ãªãã¯ãã·ãã¥ã¬ãŒãããã ãã§ãã
@prohtexãã®éãã è©ŠããŠã¿ããšäœãããŸãããå šç¶ããŸããããŸããã
ç§ãèšã£ãããã«ïŒå®ç§ã§ã¯ãããŸããããäœããªãããã¯ãŸãã§ãã
å°ãªããšãç§ã«ãšã£ãŠã¯ãå°ããªã¢ãã€ã«ç»é¢ã§å°ããªãºãŒã ãã¿ã³ãæŒãããããã³ããžã§ã¹ãã£ãè¡ãæ¹ãç°¡åã§ãã ããã«ããããã¹ãŠã®ã¢ãã€ã«ããã€ã¹ãŠãŒã¶ãŒãæåŸ
ãããžã§ã¹ãã£ãŒãæ©èœããŸãã
ããã¯ç§ã®iPadã§ãåäœããŸãããå°ãé ãæããããŸãèªç¶ã§ã¯ãããŸããã ãã³ããããã³ã«1ã¹ããããºãŒã ããŸãã ãããã£ãŠããºãŒã ããã«ã¯æãé¢ãå¿ èŠãããããã³ãããè·é¢ãã©ãã ãé¢ããŠããŠãããŸããŸããã ããã¯æ£åžžãªåäœã§ããããããšãããã€ã¹åºæã®ãã°ã§ããïŒ ãšã«ããããããšããããã¯æ£ããæ¹åãžã®äžæ©ã ããã§ãã
ãã¿ã³ãæŒããŸãã ãã®åçŽãªã¢ãããŒãã§ã¯ãèªç¶ãªãºãŒã ãã¯äžå¯èœã§ãããPDF.jsãããŸãããããããããŸããã ããã¯ç§ã®ã¢ããªã³ã®ç®æšã§ã¯ãããŸããã
ãã ããæã®ç§»åè·é¢ã«ãã£ãŠã¯ãè€æ°ã®ãã¿ã³ãæŒãããšãã§ããã¯ãã§ãã ãã£ãŠã¿ãŸãã
ã³ãŒããèŠããšãããã¯å®è¡å¯èœãªè§£æ±ºçã§ã¯ãªããé©åãªåé¿çã§ããããŸããã ããã¯ããºãŒã ã€ãã³ããç£èŠããjQueryã§[-] [+]ãã¿ã³ã®ã¯ãªãã¯ãã·ãã¥ã¬ãŒãããã ãã§ãã
ç§ã¯ææ¡ãåãå ¥ããŠããŸãããããã¯PDF.jsãFirefoxå ã®PDFãã¥ãŒã¢ãšããŠäœ¿çšã§ããããã«ãããã¢ããªã³ã®äžéšã§ãããããå€§å¹ ãªå€æŽã¯è¡ããŸããã
ãšããã§ïŒç§ã®ã³ãŒãã«ã¯jQueryã1è¡ããããŸããã ããã¯çã®JavaScriptã§ãã
æãåãããªãããºãŒã ã¹ããããå®è¡ããããšã¯å®éã«å¯èœã§ããã¯ãã§ã...
ããã«æ¹åãè©Šã¿ãŸããã䜿çšããéä¿¡ãã¹ã¯ããªã¢ãŒãã³ã³ãããŒã«ãã2ã€ã®ãã¿ã³ã ãã§ãã ãã®ããã«ããŠãç§ã®ã³ãŒãã¯PDF.jsã«å¹²æžããŸããã
ãšããã§ïŒç§ã®ã³ãŒãã«ã¯jQueryã1è¡ããããŸããã ããã¯çã®JavaScriptã§ãã
ç§ã¯æ£çŽã«ç«ã£ãŠããŸãã ããã«æçãã解決çãæãã§ããŸãã
ãããå®çŸããæ¹æ³ã¯ããã³ããºãŒã äžã«csså€æã䜿çšããããšã§ãã ãŸãããºãŒã ã ãã§ãªããæã®åããé©çšããå¿ èŠããããŸãã 次ã«ããã³ããºãŒã çµäºæã«ãcsså€æããªã»ããããå®éã®ãºãŒã ãé©çšããŠpdf.jsã«ã¹ã¯ããŒã«ã§ããŸãã
PSéjQueryãããžã§ã¯ãå ã§jQueryã䜿çšããããšã¯ãç§ã«ã¯ãã§ã«æªãç¿æ £ã®ããã«æããŸãã
PSéjQueryãããžã§ã¯ãå ã§jQueryã䜿çšããããšã¯ãç§ã«ã¯ãã§ã«æªãç¿æ £ã®ããã«æããŸãã
@ M-Reimerã¯ã©ãã§JQueryã䜿çšããŸããïŒ åœŒããã§ã«è¿°ã¹ãããã«ã圌ã®åé¿çã¯ãã¬ãŒã³ãªJavascriptã®ã¿ã䜿çšããŸãã
ãã..ç§ã®æªãã ã€ãŸãããã®ãœãªã¥ãŒã·ã§ã³ã¯ããŸãæ©èœããŸããã
æã®éã®è·é¢ããºãŒã éãå€æŽããããã«æŽæ°ãããŸããã
https://github.com/M-Reimer/android-pdf-js/blob/master/patches/pdfjs-pinch-gestures.js
äœããã®çç±ã§ãå®éã®ãºãŒã ãšåæç»ã«ãã£ãŠã¿ããã€ãã³ããäœããã®çç±ã§ãçµäºããããããæãåãããªãããºãŒã ããããšã¯ã§ããŸããã
ç¹°ãè¿ããŸããããžã§ã¹ãã£ãŒããŸã£ããåŠçããªãããã¯ãŸãã§ãã
@ M-Reimerãç²ãæ§ã§ããã å°ãªããšããååã®ããŒãžã§ã³ãšæ¯èŒããŠæ¹åãããŠããŸãã ãºãŒã äžã«åæç»ããããã®è§£æ±ºçã誰ããèŠã€ããã®ãããããŸããã ãŸãã¯ãcsså€æã䜿çšããŠäžæçã«ãºãŒã ããã¿ãããžã§ã¹ãã£ãçµäºããåŸã«æçµçã«åæç»ããããšãã§ããŸãã
@anvakaã±ãŒã¹ããããªãåçŽãªè§£æ±ºçã
ç§ã¯@squallstarãœãªã¥ãŒã·ã§ã³ã«åºã¥ããŠããŒãžã§ã³ãäœæããŸãããããã¯ããã³ã移åäžã«csså€æã䜿çšããŠãããå€ãã®ãŠãŒã¶ãŒãã£ãŒãããã¯ãæäŸããŸãã ã¬ã³ããªã³ã°ã¯ã¿ãããšã³ãã§ã®ã¿è¡ãããŸãã å®ç§ã§ã¯ãããŸãããã¬ã³ããªã³ã°åŸã®ã¹ã¯ããŒã«ã®é 眮ã«å°ããªåé¡ãããã€ããããŸããã誰ãããããåºçºç¹ãšããŠäœ¿çšã§ããå¯èœæ§ããããŸãã
https://gist.github.com/jsprpalm/12217feab2f1acc14bd8e8508291619e
ãã®åé¡ã®ä¿®æ£ã¯ãŸã ãããŸãããïŒ ã¢ãã€ã«ã§pdf.jsã䜿çšãããã®ã§ããããºãŒã æ©èœããªããšãå°ããªç»é¢ã§ã¯ã»ãšãã©åœ¹ã«ç«ã¡ãŸããã
Hammer.jsã䜿çšããã«åäœãããŸãããã顧客ãããžã§ã¯ãçšã§ãã£ããããã³ãŒããå ±æã§ããŸããã ãã³ããšããã«ã¿ãããå®è£ ããcssã§ãºãŒã ãããã³ãã§ã³ãã§pdf.jsããºãŒã ããŸããã äžéšã®èŠçŽ ã¯å¹ /é«ããèšå®ããå¿ èŠããããäžéšã¯css-transformã§å€æã§ããŸãã ãŸãããºãŒã äžã¯pdf.jsviewer.jsã®ã¹ã¯ããŒã«ãŠã©ãããé²æ¢ããå¿ èŠããããŸãã ããªãã®æéãããããŸããããæçµçã«ã¯ããªãããŸããããŸããã
ãã®åé¡ã®ä¿®æ£ã¯ãŸã ãããŸãããïŒ ã¢ãã€ã«ã§pdf.jsã䜿çšãããã®ã§ããããºãŒã æ©èœããªããšãå°ããªç»é¢ã§ã¯ã»ãšãã©åœ¹ã«ç«ã¡ãŸããã
éçºè ããœãªã¥ãŒã·ã§ã³ãæäŸããããã®pdf.jsã³ãŒãããŒã¹ã®æé ãçµéšãããŸã§ã¯ãpdf.jsãå®è£ ããå人ãäœãããŸãšããå¿ èŠããããŸãã ãã®ãããžã§ã¯ãã®åªå äºé ã§ã¯ãªãããã§ãã
ããã¯ãããã»ã©å°é£ãªãçµ±åã§ããPRã§ãã
https://gist.github.com/jsprpalm/12217feab2f1acc14bd8e8508291619e
@jsprpalmããããšãããããŸããä¿®æ£ãå¿ èŠã§ã誰ããä¿®æ£ããã®ãæäŒã£ãŠãã ãã
@aidrouge https://gist.github.com/larsneo/bb75616e9426ae589f50e8c8411020f6
ãããPDFãã¥ãŒã¢ã¢ããªã³ã«è¿œå ããŸããã ããªãããŸãæ©èœããŠããããã§ãã
https://addons.mozilla.org/android/addon/android-pdf-js/
ç·šéïŒç§ã®ããã«åã
ãããããèªç¶ã«èšå®ããŠäœæ¥ããç§ã«ãšã£ãŠïŒ
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=10.0, minimum-scale=1.0"
/>
æå°ãºãŒã ãèšå®ããã«ã¯ã©ãããã°ããã§ããïŒ ç»åããããã«å€ããã»ã©çž®å°ã§ããŸãã
@KazysNoobiysãšåã質åããããŸãã
ãã¥ãŒããŒãã®æå°ã¹ã±ãŒã«ã¯ãºãŒã ã«åœ±é¿ããŸãã
ç§ã¯å¥ã®åé¿çã«åãçµãã§ããŸãïŒããŸããŸãªã¹ã¯ã€ãæ©èœãåŠçããããã«pdf.jsããªãŒããŒã¬ã€ããéæãªcssã¬ã€ã€ãŒã ãªãŒããŒã¬ã€éšåã¯æ©èœããããã«ãªããŸããããã©ã®é¢æ°ãåŒã³åºãã¹ããããããŸããã
ifïŒswipe == 'left'ïŒ????
次ã®ããŒãžã«é²ãã ããåã®ããŒãžã«ããã¯ã¢ãããããããºãŒã ãããããã«ã¯ãã©ã®é¢æ°ãåŒã³åºããŸããïŒ
æéãšåŽåãç¯çŽãã.htmlãã¡ã€ã«ã次ã®ããã«ç·šéããŸã
// delete the 'maximum-scale'
<meta name="viewport" content="width=device-width, initial-scale=1">
äŸãã°ã https://github.com/mozilla/pdf.js/blob/master/web/viewer.html#L26
æãåèã«ãªãã³ã¡ã³ã
@ltullman @ hetalv985ç§ã¯ãããèªåã§å®è£ ããŠåäœãããããšãã§ããŸãããããã§ç§ã®èŠç¹ã確èªããŠãã ããïŒ
https://gist.github.com/squallstar/1d720e93eabe7f60dc61b547d2c19228
ãããviewer.htmlã®æåŸã«è²Œãä»ããã ãã§ãðããã ãã§ãã