У меня есть горизонтальная серия аккордеонного типа divs с шириной по умолчанию 33,33%. Я использую Jquery для анимации одного из этих divs до 60%, а два других - до 15%, поэтому я сохраняю полную ширину экрана.Предотвращение аккордеона DIV от исчезновения
Однако, зависание на div1 или div2 приводит к тому, что div3 (самый правый div в строке из трех) временно мигает или исчезает (думаю, до тех пор, пока Jquery не оживит его до ширины, которая не ударит его до следующая строка в сетке).
Есть ли способ предотвратить эту вспышку - возможно, настройка CSS? Решение, вероятно, прямо там передо мной, но у меня возникают проблемы с тем, как я могу предотвратить ошибку, не удаляя поведение сетки.
Мой HTML:
<div class="grid grid-pad">
<div id="div1" class="col-1-3">
<div class="content">
DIV 1
</div>
</div>
<div id="div2" class="col-1-3">
<div class="content">
DIV 2
</div>
</div>
<div id="div3" class="col-1-3">
<div class="content">
DIV 3
</div>
</div>
</div>
CSS:
body {
margin: 0px;
}
[class*='col-'] {
float: left;
padding-right: 20px;
}
[class*='col-']:last-of-type {
padding-right: 0px;
}
.grid {
width: 100%;
min-width: 755px;
margin: 0 auto;
overflow: hidden;
}
.grid:after {
content: "";
display: table;
clear: both;
}
.grid-pad {
padding: 20px 0 0px 20px;
}
.grid-pad > [class*='col-']:last-of-type {
padding-right: 20px;
}
.push-right {
float: right;
}
/* Content Columns */
.col-2-3 {
width: 66.66%;
}
.col-1-3, .col-4-12 {
width: 33.33%;
}
.col-1-6, .col-2-12 {
width: 16.667%;
}
#div1 {
background-color: blue;
}
#div2 {
background-color: red;
}
#div3 {
background-color: yellow;
}
И JQuery:
$('#div1').hover(function() {
$(this).stop(true, true).toggleClass('col-2-3', [1000]),
$('#div2, #div3').stop(true, true).toggleClass('col-1-6', [1000]);
});
И JSfiddle - http://jsfiddle.net/yysNr/47/
Попробуйте использовать '.animate'. Я не думаю, что '.stop' влияет на класс toggle –
Некоторая информация: я вижу флеш на следующей строке в Firefox 20.0, но не в Safari 5.1.9. – 7stud