В одном из наших веб-приложений у нас есть две панели, каждая из которых содержит флэш-анимацию. Отображается только одна панель, а другая скрыта. Первоначально мы использовали jquery .hide () и .show () на панелях, но с Chrome (21.0) каждый раз, когда видимость одной панели изменялась со скрытой, чтобы заблокировать флэш-анимацию, помещенную внутрь, перезапускалась.
Мы попробовали различные решения, предложенные в сети, но только одно работает хорошо: избегайте изменений в свойствах display
или visibility
css и скрывайте панели, изменяя абсолютное положение.
Примерно так:
<div class="panelContainer">
<div id="panel1">
<object>...flash code here...</object>
</div>
<div id="panel2" class="active">
<object>...flash code here...</object>
</div>
</div>
.panelContainer {
position: relative;
}
.panelContainer > div {
position: absolute;
top: 0;
left: -3999px;
}
.panelContainer > div.active {
left: 0;
}
function showPanel(id) {
$('#panelContainer > div.active').removeClass('active');
$('#'+id).addClass('active');
}
showPanel('panel1');
Странно, но верно, у нас есть эта проблема только с Chrome, в то время как IE9 и FireFox 15 работают с .hide () и .show ().
Надеюсь, это поможет.