1

「列」と呼ばれるこれらの div ブロックがあり、各列 div には別々の 2 つの div (上部と下部) が含まれています。1 つは「画像プレースホルダー」用の div で、もう 1 つは「キャプション」用です。プレースホルダー div の画像にカーソルを合わせると、トリガー アクションが画像に適用されるようになり、キャプション div の背景画像も変更されます。キャプション div には CSS で適用された背景画像スプライトがあり、位置 0,0 に「アクティブ」状態、下部位置に「ホバー状態」があります。

問題は、私が書いて実験した Jquery コードが機能しないことです。

$('.products2 .thumbnail .holder .image a').bind('mouseover', function(){ $('.products2 .thumbnail .holder .caption').css("background-position", "0 -91px");});

HTML マークアップは次のとおりです。

<div class="products2">
      <div class="thumbnail" >
           <div class="holder">
              <div class="image"><a href="?page_id=185"><img src="<?php echo get_bloginfo('template_directory'); ?>/images/embellishments-image.jpg" alt="Embellishments" width="253" height="318"/></a></div>
              <div class="caption"><a href="?page_id=185">Embellishments</a></div>
          </div>
      </div>
 </div>

CSSは次のとおりです。

.page-wrapper .products2 .thumbnail .caption{
    width:253px; height:86px; background: url(images/thumb-caption-sprite.jpg) no-repeat;
    color: #426e94; text-align: center;font-size:25px; text-decoration: none; font: 22px 'LiberationSerifRegular', Arial, sans-serif; padding-top:5px; outline: none; position: relative;z-index:2;position: absolute;display: table;

}

.page-wrapper .products2 .thumbnail .caption .hover{
    background: url(images/thumb-caption-sprite.jpg) no-repeat;
    background-position: 0 -91px;
    display:block;
    opacity: 0; z-index: -1;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    cursor: pointer;color: #FFFFFF;text-shadow: none;
}

.page-wrapper .products2 .thumbnail .caption:hover{
    width:253px; height:86px; background: url(images/thumb-caption-sprite.jpg) no-repeat; color: #FFFFFF;
    background-position: 0 -91px;text-shadow: none;
}
4

1 に答える 1

1

私はあなたが望むものを完全に理解していることを確認してください、しかし私が間違っていなければ:

.image:hover + .caption
{
    background-position: 0 -91px;
}

私が間違っている場合は、フィドルを提供してください。

于 2012-04-07T15:34:53.697 に答える