最近同事一項目中,產品提出在macbook air上,列表圖片放大效果邊緣出現抖動現象。在retina屏上沒有此問題。javascript
一、單獨把結構分離。肯定是否由其餘元素引發。css
二、逐步添加結構。看是否有父級結構引發。java
一、單獨分離,不出現問題。瀏覽器
二、添加結構的過程當中,當遇到父級中包含app
margin:0 auto;
問題出現。調試
初步肯定是因爲此屬性的緣由。blog
使用下面代碼圖片
($(window).width()-1100)/2;//1100是頁面寬度 121.5
肯定緣由多是由於在普屏上0.5像素形成的。ip
故,把原外框樣式,添加如下代碼以肯定是否判斷正確。ci
position:relative; left:-0.5px;
結果完美解決相關的問題。
但以上解決只能處理在屏幕寬度和主體寬度之差爲奇數的狀況,並且只在macbook air的safari瀏覽器,有以上BUG。
故只能用js進行處理。
代碼以下:
$(function(){ var ua=navigator.userAgent; var isPCMac=ua.indexOf('Macintosh')>-1; var isRetina=window.devicePixelRatio&&window.devicePixelRatio>1; function resizeWrapper(){ var wWidth=1100;//$(".wrapper").width(); var winW=$(window).width(); if(winW>wWidth){ var wleft=parseInt((winW-wWidth)/2); $('.wrapper').css({margin:'0 '+wleft+'px'}); } } if(isPCMac&&!isRetina){ resizeWrapper(); $(window).resize(function(){ resizeWrapper(); }) } })