Canvas ios11 webview html画布内容已被页面滚动清除

Canvas ios11 webview html画布内容已被页面滚动清除,canvas,webview,ios11,Canvas,Webview,Ios11,我使用canvas创建的html页面在ios11中变得不同了 当第一次在webview中显示时,页面看起来很好,但是,当向下滚动时,其中的画布在视口中不可见,画布中的内容将消失,并且当页面滚动回顶部时,再也不会回来 有人知道如何解决这个问题吗?或者我应该等到苹果以后再解决 我也有同样的问题。我注意到,如果我在SafariWebInspector中切换画布的任何属性,它会再次呈现。关于SO()报告了另一个类似问题 所以我的计划是检测顶部的scroll事件并强制重画DOM元素。我决定使用scroll

我使用canvas创建的html页面在ios11中变得不同了

当第一次在webview中显示时,页面看起来很好,但是,当向下滚动时,其中的画布在视口中不可见,画布中的内容将消失,并且当页面滚动回顶部时,再也不会回来


有人知道如何解决这个问题吗?或者我应该等到苹果以后再解决

我也有同样的问题。我注意到,如果我在SafariWebInspector中切换画布的任何属性,它会再次呈现。关于SO()报告了另一个类似问题

所以我的计划是检测顶部的scroll事件并强制重画DOM元素。我决定使用scrollstop事件。touchmove事件也可以工作,但不如scrollevent好,因为它只在手指触摸屏幕时发生

$('#my-canvas').on({
    'scrollstop': function(e) {
        // e.scrollTop() doesn't work... so
        console.log($(window).scrollTop()); 
        if ($(window).scrollTop() === 0) {
           console.log("Redraw of the canvas");
           $('#my-canvas').hide().show(0);
        }
    }
});
我不相信这是钻石代码,但它只适用于iOS


PS:问题可能只存在于传统web视图中,而不存在于WkWebView中。但最后一个问题是如此具有挑战性,因为有很多不同的网络问题,我从来没有使用过它。

我遇到了类似的问题,我有一些画在画布上,在我的例子中,如果我放大然后缩小html页面,就会消失。我发现如果我删除canvas.getContext(“2d”)的这行代码;这样我就可以不用任何东西就可以进行缩放了issues@Xusan感谢您提供的信息,但是如果没有canvas.getContext('2d'),我如何才能让画布绘图正常工作?我的临时解决方案与您的一样,还没有找到更好的解决方案。将我们的应用程序转换为WKWebview非常困难,无法想象我们会遇到多少问题。到目前为止,这个问题只能解决到这一步。