デフォルトの幅が 33.33% の水平アコーディオン型の一連の div があります。Jquery を使用して、これらの div の 1 つを 60% にアニメーション化し、他の 2 つを 15% にアニメーション化するので、画面全体の幅を維持します。
ただし、div1 または div2 にカーソルを合わせると、div3 (3 行の右端の 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/