В Internet Explorer 7, 8 и amp; 9, это работает:
function getZoom() {
var screen;
screen = document.frames.screen;
return ((screen.deviceXDPI / screen.systemXDPI) * 100 + 0.9).toFixed();
}
Добавлен «+0.9», чтобы предотвратить ошибки округления (в противном случае вы получите 104% и 109%, если масштаб браузера установлен на 105% и 110% соответственно ).
В IE6 масштабирования не существует, поэтому нет необходимости проверять масштаб.
Вам нужно будет использовать JS или jQuery для запуска вашего перехода / анимации CSS3, когда элемент находится в видовом окне **.
jsFiddle demo - Использование плагина inViewport
прослушивает события load
, resize
и scroll
, чтобы получить , если элемент вошел в Viewport . Вы можете использовать небольшой плагин jQuery, который я создал: ( https://stackoverflow.com/a/26831113/383904 )
Предположим, у вас есть коробки, которые оживляют:
<div class="box rotate"></div>
<div class="box scale"></div>
<div class="box translate"></div>
, чем в вашем CSS:
.box{
width:300px;
height:300px;
margin:500px 50px;
background:red;
transition: 1.5s; /* THE DURATION */
}
.rotate.triggeredCSS3 {transform : rotate(360deg); }
.scale.triggeredCSS3 {transform : scale(1.6); }
.translate.triggeredCSS3 {transform : translate3d(400px,0,0); }
, где плагин .triggeredCSS3
будет динамически назначаться плагином:
$(".box").inViewport(function(px){
if(px) $(this).addClass("triggeredCSS3") ;
});