写了好久的一个接近原生体验的 React 图片查看器组件 - V2EX
爱意满满的作品展示区。
wyn153409018

写了好久的一个接近原生体验的 React 图片查看器组件

  •  2
     
  •   wyn153409018 Feb 3, 2018 7856 views
    This topic created in 3024 days ago, the information mentioned may be changed or developed.

    Feature

    • 双击放大指定位置(手势库使用 alloyfinger )
    • 为移动端而生,pc 端也可以正常使用)
    • 性能良好,我用骁龙 810 60fps 没问题。此外理论上支持展示无数张图片,不像大多数轮播图会把所有图片都渲染出来,这个组件同时最多渲染三张(前一张,当前图片,后一张)
    • 兼容性还不错,移动端应该没啥问题,其实我已经拿去在二线互联网公司的一个小产品上线了,不过要求 react16 以上.
    • 有测试(但 coverage 只有可怜的 17%,不知道算 feature 还是 bug ==)

    Todos

    • 多指放大,最早其实实现了,即 github 上的那张 gif,但是不能从指定位置放大所以改成双击了。
    • 组件进入推出动画
    • 重构!因为涉及到同时触摸控制父子元素,edge case 太多了。。。所以代码写的有些乱

    demo

    Edit l2xpwy3xrq

    Github

    一点点不成熟的总结

    Supplement 1    Feb 3, 2018

    demo

    12 replies    2018-02-06 00:29:11 +08:00
    wyn153409018
        1
    wyn153409018  
    OP
       Feb 3, 2018
    补充下,这个组件最麻烦的地方是处理触摸事件,当图片超出屏幕时应该触摸拖拽图片,在屏幕范围内则触摸拖拽整个列表,导致这个组件有些庞大( 24kb ungzipped)
    17 届的应届生,第一次发帖,也希望各位能够多多指点。
    fengyj
        3
    fengyj  
       Feb 3, 2018
    不错的。mark 一下。
    Solix
        4
    Solix  
       Feb 3, 2018 via iPhone
    mark
    azh7138m
        5
    azh7138m  
       Feb 4, 2018 via Android
    Android7 chrome63,不能放大
    wyn153409018
        6
    wyn153409018  
    OP
       Feb 4, 2018
    @azh7138m 我也是安卓 7 chrome 哎,我这里没有问题很奇怪,有啥错误信息么,毕竟上线的东西,有 bug 我就 gg 了
    wyn153409018
        7
    wyn153409018  
    OP
       Feb 4, 2018
    @azh7138m 我猜你是不是点的是 loading 动画~
    azh7138m
        8
    azh7138m  
       Feb 4, 2018 via Android
    @wyn153409018 你等下,我开个调试看看
    azh7138m
        9
    azh7138m  
       Feb 4, 2018 via Android   1
    @azh7138m 不知道啥问题,电脑上没问题,手机上不行,更新到 64 也不行,我觉得是版本的问题,ff57 是可以的
    wyn153409018
        10
    wyn153409018  
    OP
       Feb 4, 2018
    @azh7138m 谢谢,我看一下
    sinchang
        11
    sinchang  
       Feb 5, 2018
    赞 代码很工整 看的很舒服
    wyn153409018
        12
    wyn153409018  
    OP
       Feb 6, 2018
    @sinchang 啊哈,谢谢表扬
    About     Help     Advertise     Blog     API     FAQ     Solana     3083 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 52ms UTC 02:55 PVG 10:55 LAX 19:55 JFK 22:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86