在iOS11的iPhone设备上,我遇到渲染图像的问题。我正在做的是在滚动上延迟加载图像列表,但是随机地某些图像无法呈现。我已经尝试在Safari桌面上进行调试,它显示img标签确实设置了src但是它仍然不会渲染,直到我做一些操作打开任何完全覆盖该区域的层。
我尝试过的事情: -
一个疑问:它是否必须对PPI(Pixel Per Inch)做任何事情。目前其150PPI。我需要将它降低到72PPI吗?
我会给出问题实际发生的链接,但不能真的很抱歉
小提琴示例:
http://jsfiddle.net/y37eL2hp/4/
全屏:http://fiddle.jshell.net/y37eL2hp/4/show/light/
HTML
<div ng-app="myapp">
<div ng-controller="Mycontroller">
<div class="my-product" ng-repeat="product in products track by $index">
<div class="my-productimgblk">
<ng-lazy-load-img imgsrc="product" class="lazy-smooth-load my-productimg" elem-type="img" elem-width="309" elem-height="400" load-offset-top="860"></ng-lazy-load-img>
</div>
</div>
</div>
</div>
我检查了上面的例子,它有同样的问题。在重新加载时清除缓存
显然有一个已知的问题被认为与Safari有关,假设晦涩的单宽方形字符,一旦加载了字体,它会超出你的javascript包含你的lazyload脚本。
解决方法的解决方案是包含常见的后备字体,即
font-family: "Your strange font", Arial, Sans-Serif;
或者也许使用谷歌字体
希望尽管IOS11系统很快就会得到补丁!
有关更多信息,请参阅此链接:https://bugs.webkit.org/show_bug.cgi?id=174031
它似乎又回到了iOS11的黑客攻击。过去我们需要使用-webkit
这样的黑客攻击,但现在我们又需要它,但没有前瞻......
img {
transform: rotateZ(360deg);
}