buuing / lucky-canvas

🎖🎖🎖 基于 TS + Canvas 开发的【大转盘 / 九宫格 / 老虎机】抽奖插件,🌈 一套源码适配多端框架 JS / Vue / React / Taro / UniApp / 微信小程序等,🎨 奖品 / 文字 / 图片 / 颜色 / 按钮均可配置,支持同步 / 异步抽奖,🎯 概率前 / 后端可控,🚀 自动根据 dpr 调整清晰度适配移动端
https://100px.net
Apache License 2.0
7.66k stars 928 forks source link

九宫格在部分手机 webview中适配有问题 #503

Closed GitHubYuzai closed 2 months ago

GitHubYuzai commented 2 months ago
// 代码开始, 别再放歪了行吗
  <LuckyGrid
                    rows={3}
                    ref={ref}
                    onEnd={onEnd}
                    width={`5.86rem`}
                    height={`5.86rem`}
                    prizes={prizes}
                    defaultConfig={{
                        gutter: ".12rem",
                        speed: 10,
                        accelerationTime: 2000,
                        decelerationTime: 2000
                    }}
                />
// 代码结束
buuing commented 2 months ago

这很奇怪, 你看一下canvas的大小和位置变形了吗

GitHubYuzai commented 2 months ago

canvas跟外层div的宽高都被放大了,rem计算出来的值变大了

GitHubYuzai commented 2 months ago

只有在三星手机中会有这个情况

buuing commented 2 months ago

那就是根标签的fontsize有问题了, 别用rem了, 先换成vw试试

GitHubYuzai commented 2 months ago

也怀疑过是fontsize不对,但是页面其他布局单位都是正常,也是用的rem,我先试试vw看看

buuing commented 2 months ago

其他dom的rem是自动计算的, rem改变时,实时变化, 我这个是js控制的计算, 没有追踪fontsize变化的能力, 说白了就是, 我担心可能你用的库在三星手机上动态计算fontsize了?

GitHubYuzai commented 2 months ago

动态计算fontsize是没有的,在三星手机app的webview就不行,浏览器是正常的,有可能是webview有地方影响了,我先排查下,非常感谢回复

buuing commented 2 months ago

好的, 我这边也只能是猜测, 毕竟能影响rem的也只有根标签的fontsize了

GitHubYuzai commented 2 months ago

用vw单位解决了这个问题

<LuckyGrid rows={3} ref={ref} onEnd={onEnd} width={78.13vw} height={78.13vw} prizes={prizes} defaultConfig={{ gutter: ".12rem", speed: 10, accelerationTime: 2000, decelerationTime: 2000 }} />