- textarea、editor、cover-view、text/view组件的一系列问题
BUG1:textarea 不支持 word-break 样式。 [图片] BUG2:textarea、cover-view等原生组件与view、text等非原生组件在真机上字符间距不一致。 实例如下:红色为 textarea / cover-view 等原生组件、黑色为 view / text 等非组件,每一行首字符正常、越靠后的字符偏差越大。 [图片] BUG3:cover-view 不支持 pointer-events: none; 样式。(别说什么现在基本实现同层渲染可用 view 代替 cover-view,什么时候解决原生组件和非原生组件渲染方式差异导致效果差异再说吧,见BUG2) BUG4:textarea 文档说明是支持同层渲染 cover-view 支持 z-index 样式,然而在真机上 textarea 将 z-index 样式设置比 cover-view 大是无效的,仍然会被cover-view 遮挡。 BUG5:editor 组件手动移动光标到其他位置后通过 EditorContext.format 设置样式后调用 EditorContext.insertText 插入文本无样式效果,从获取的 html 结果显示,文本会被插入到设置样式的 span 标签后面,不移动光标不会出现该问题,只要移动了光标必现。 PS:因 editor 组件官方一直未维护,目前能力特别差,使用起来真的很鸡肋,尝试了很多方法替换都解决不了问题,各种组件都有自己各自的问题,很多项目上只要试图想追求体验就一定会碰壁,毕竟受限于平台,哎......
2023-05-19 - 微信支付接口支付成功后返回requestPayment:fail cancel
- 当前 Bug 的表现 支付成功跳转到支付完成界面后,直接按home回到手机桌面,再进入打开微信进入小程序,支付接口返回requestPayment:fail cancel
2019-01-07 - 微信支付接口支付成功后返回requestPayment:fail cancel
- 当前 Bug 的表现 支付成功跳转到支付完成界面后,直接按home回到手机桌面,再进入打开微信进入小程序,支付接口返回requestPayment:fail cancel
2019-01-06 - 连续tap事件设置scroll-view的位置会导致tap事件触发延迟和卡死
- 当前 Bug 的表现 点击view触发tag事件,该事件只设置scroll-view属性scroll-into-view或scroll-top所需的值,连续点击两次以上会出现延迟,根据timeStamp显示至少会多出300,连续点击超过三次,前两次正常触发,中间点击的都无法触发,最后一次延迟触发 - 预期表现 每次点击都能按时触发tag事件 - 提供一个最简复现 Demo js [代码]Page({[代码] [代码] [代码][代码]data: {[代码][代码] [代码][代码]ids: [[代码][代码]"a"[代码][代码], [代码][代码]"b"[代码][代码], [代码][代码]"c"[代码][代码], [代码][代码]"d"[代码][代码], [代码][代码]"e"[代码][代码], [代码][代码]"f"[代码][代码]],[代码][代码] [代码][代码]id: [代码][代码]'a'[代码][代码],[代码][代码] [代码][代码]idTops: [][代码][代码] [代码][代码]},[代码] [代码] [代码][代码]onLoad: [代码][代码]function[代码] [代码](options) {[代码][代码] [代码][代码]var[代码] [代码]that = [代码][代码]this[代码][代码] [代码][代码]var[代码] [代码]query = wx.createSelectorQuery()[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 0; i < that.data.ids.length; i++) {[代码][代码] [代码][代码]query.select([代码][代码]'#'[代码] [代码]+ that.data.ids[i]).boundingClientRect()[代码][代码] [代码][代码]}[代码][代码] [代码][代码]query.exec([代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]var[代码] [代码]idTops = {}[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 0; i < res.length; i++) {[代码][代码] [代码][代码]idTops[res[i].id] = res[i].top[代码][代码] [代码][代码]}[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]idTops: idTops[代码][代码] [代码][代码]})[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]switchClickEvent: [代码][代码]function[代码][代码](e) {[代码][代码] [代码][代码]console.log(e)[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]id: e.currentTarget.dataset.id[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码] [代码]})[代码]wxml [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'container'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'left'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'category {{id == item ? "category-selected" : ""}}'[代码] [代码]wx:for[代码][代码]=[代码][代码]'{{ids}}'[代码] [代码]wx:key [代码][代码]bindtap[代码][代码]=[代码][代码]'switchClickEvent'[代码] [代码]data-id[代码][代码]=[代码][代码]'{{item}}'[代码][代码]>ID:{{item}}</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<!-- 测试scroll-into-view属性 -->[代码][代码] [代码][代码]<[代码][代码]scroll-view[代码] [代码]class[代码][代码]=[代码][代码]'right'[代码] [代码]scroll-y [代码][代码]scroll-into-view[代码][代码]=[代码][代码]'{{id}}'[代码] [代码]scroll-top[代码][代码]=[代码][代码]'{{idTops[id]}}'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]id[代码][代码]=[代码][代码]'{{item}}'[代码] [代码]wx:for[代码][代码]=[代码][代码]'{{ids}}'[代码] [代码]wx:key [代码][代码]style[代码][代码]=[代码][代码]'height: 500px; padding: 30rpx; background: #{{item + item + item}}'[代码][代码]>ID:{{item}}</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]scroll-view[代码][代码]>[代码][代码] [代码][代码]<!-- 测试scroll-top属性 -->[代码][代码] [代码][代码]<!-- <scroll-view class='right' scroll-y scroll-top='{{idTops[id]}}'>[代码][代码] [代码][代码]<view id='{{item}}' wx:for='{{ids}}' wx:key style='height: 500px; padding: 30rpx; background: #{{item + item + item}}'>ID:{{item}}</view>[代码][代码] [代码][代码]</scroll-view> -->[代码][代码]</[代码][代码]view[代码][代码]>[代码]wxss [代码].container {[代码][代码] [代码][代码]display[代码][代码]: flex;[代码][代码] [代码][代码]flex-[代码][代码]direction[代码][代码]: row;[代码][代码] [代码][代码]position[代码][代码]: [代码][代码]absolute[代码][代码];[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]100%[代码][代码];[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]100%[代码][代码];[代码][代码]}[代码][代码].[代码][代码]left[代码] [代码]{[代码][代码] [代码][代码]display[代码][代码]: flex;[代码][代码] [代码][代码]flex-[代码][代码]direction[代码][代码]: column;[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]100%[代码][代码];[代码][代码] [代码][代码]background[代码][代码]: whitesmoke;[代码][代码]}[代码][代码].[代码][代码]right[代码] [代码]{[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]100%[代码][代码];[代码][代码] [代码][代码]flex: [代码][代码]1[代码][代码];[代码][代码]}[代码][代码].category {[代码][代码] [代码][代码]font-size[代码][代码]: [代码][代码]30[代码][代码]rpx;[代码][代码] [代码][代码]line-height[代码][代码]: [代码][代码]30[代码][代码]rpx;[代码][代码] [代码][代码]padding[代码][代码]: [代码][代码]30[代码][代码]rpx;[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]100[代码][代码]rpx;[代码][代码] [代码][代码]color[代码][代码]: [代码][代码]#888[代码][代码];[代码][代码]}[代码][代码].category-selected {[代码][代码] [代码][代码]background[代码][代码]: [代码][代码]white[代码][代码];[代码][代码] [代码][代码]color[代码][代码]: [代码][代码]#333[代码][代码];[代码][代码] [代码][代码]font-weight[代码][代码]: [代码][代码]bold[代码][代码];[代码][代码]}[代码]
2018-08-28