我有.png.jpg中的图像显示在Lightview模式中,在Android手机上会变得模糊。iPhone不受影响。模式和图像的大小由视图端口大小自动设置。
HTML(Lightview动态构建)

<div class="lv_window">
   <div class="lv_content">
      <div class="lv_content_wrapper">
         <img class="lv_content_image" />
      </div>
   </div>
</div>

CSS
.lv_window {
  position: absolute;
  top: 50%;
  left: 50%;
  padding: 0;
  overflow: hidden;
  text-align: left;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  display:block;
  /* width, height, top, and left are dynamically set depending on viewport */
}
.lv_content {
  position: absolute;
  padding: 0;
  margin: 0;
  overflow: hidden;
  background: url('somegif.gif');
  display: block;
  /* width, height, top, and left are dynamically set depending on viewport */
}
.lv_content .lv_content_wrapper {
  float: left;
  clear: both;
  position: relative;
}
.lv_content_image {
  float: left;
  border: 0;
  clear: both;
  padding: 0;
  margin: 0;
  background: none;
  /* width and height are dynamically set depending on viewport in px */
}

我使用MVC给每个图像一个源(src),因为根据它们在选择中选择的状态,我有一个不同的图像。否则,所有CSS和HTML都由Lightview创建。
我浏览过其他帖子,比如Blurry images on stock android browser,因为我的问题非常相似,但是我没有任何z-index或position: fixed设置。我的问题在Android默认浏览器的4.0.44.1.24.2.2版本中产生(这些细节由我们的测试人员提供)。
我已经尝试将类Samsung Galaxy S3的Lightview CSS float重写为none,但图像质量仍然没有变化。
如果可以的话,我会发布一个示例图片。

最佳答案

这是S3的a strange bug。将这两个都设置在图像标签上就可以了:

opacity: 0.999999;
-webkit-backface-visibility: hidden;

不幸的是,同样的方法会在S4上造成错误,S3和S4的屏幕宽度/高度相同,为320×640。因此,与其编写像素精确的@media样式表,不如使用:
var ua = window.navigator.userAgent.toLowerCase();
window.platform = {
    ...
    isS3: ua.match(/gt\-i9300/i) !== null
}
if (platform.isS3) {
    $('img').css{
        'opacity': 0.9999,
        'webkitBackfaceVisibility': 'hidden'
    }
}

10-07 19:12
查看更多