10

2 つの div 要素が並んでいます。最初のものの上にマウスを移動してアニメーションすると、次のものは奇妙に揺れます。ここを参照してください: http://jsfiddle.net/YqZSv/1/パディングとボーダーが関係している場合にのみ発生することに気付きました。ボーダーをマージンに置き換えると、「揺れ」効果が停止します。

HTML

<div class='a'></div>
<div class='b'></div>

CSS

.a {
   width: 80px;
   height: 80px;
   padding: 10px;
   border: 0px solid yellow;
   background-color: red;
   display: inline-block
}

.b {
   width: 100px;
   height: 100px;
   background-color: blue;
   display: inline-block;
   margin-left: 20px;
}

jQuery

$('.a').mouseenter(function(){
    $(this).animate({
        'padding': 0,
        'borderWidth': 10
    });
}).mouseleave(function(){
    $(this).animate({
       'padding': 10,
       'borderWidth': 0
    });
});

境界線の原点を持つ背景画像を使用しているため、境界線の代わりにマージンを使用できないため、コンテンツと一緒に移動したくありません。

何か助けはありますか?

4

3 に答える 3

2

小さな html/css の変更が問題にならない場合: http://jsfiddle.net/YqZSv/8/

HTML:

<div class="box">

<div class='a'></div>
</div>
<div class="box">
<div class='b'></div>
    </div>

CSS:

.box {
width:100px;
    height:100px;
    margin-right:20px;
    float:left;
}
.a {
    width: 80px;
    height: 80px;
    padding: 10px;
    border: 0px solid yellow;
    background-color: red;
    display: inline-block
}

.b {
    width: 80px;
    height: 80px;
     padding: 10px;
    background-color: blue;
    display: inline-block;

}

基本的に、ラッパーとして1つのdiv...

于 2013-06-15T21:26:58.507 に答える