我有.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.4
、4.1.2
和4.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'
}
}