1

I have a list of links (a text menu), and I need to change an image in other area when each link is hovered...

the images need to be showed in the same place, lets say a 100x100 area at right... any idea to achieve this?

can each link have the src of the images? no idea how to do it :(

4

5 に答える 5

0

画像のsrcをaのrelタグに保存できますか?

<a href="#" rel="../images/myPicture.jpg">Anchor Link</a>

次に、elcuco のソリューションを使用しますが、わずかな変更があります。

$("a")
  .hover( function(){ $("#some-div").css( "background", $(this).attr('rel') ) );
于 2009-09-08T20:34:07.800 に答える
0

次の HTML があるとします。

<ul>
  <li><a href="#" id="link1">Link Number 1</a></li>
  <li><a href="#" id="link2">Link Number 2</a></li>
  <li><a href="#" id="link3">Link Number 3</a></li>
  <li><a href="#" id="link4">Link Number 4</a></li>
  <li><a href="#" id="link5">Link Number 5</a></li>
</ul>
<ul>
  <li><img src="image1.jpg" /></li>
  <li><img src="image2.jpg" /></li>
  <li><img src="image3.jpg" /></li>
  <li><img src="image4.jpg" /></li>
  <li><img src="image5.jpg" /></li>
</ul>

次の JavaScript を使用します (jQuery を使用)。

$(function(){
  $(".images img").hide();
  $(".links a").hover(function(){
    $(".images img").hide();
    $("#image"+/(\d+)$/.exec(this.id)[1]).show();
  }, function(){
    $(".images img").hide();
  });
});
于 2009-09-08T20:35:37.187 に答える
0

各リンクは、表示される画像の href を保持し、クラスによって識別可能であると仮定しますlink-image。さらに、表示領域が固定 ID で設定されているとしimageDisplayます。

$('a.link-image').hover(
    function() {
        $('#imageDisplay').children().remove();
        $('<img src="' + $(this).attr('href')  + '" alt="" />')
           .css( { height: 100, width: 100 } )
           .appendTo( '#imageDisplay' );
    },
    function() {
        $('#imageDisplay').children().remove();
        $('<span>No image available</span>').appendTo( '#imageDisplay' );
    }
);

実際にはhoverIntentプラグインを使用して、マウスがリンク上を移動するときに点滅しないようにすることをお勧めします。

通常、デフォルトのリンク動作を無効にするリンクのクリック ハンドラーとこれを組み合わせます。

$('a.link-image').click( function() { return false; } );

クリック ハンドラーをホバー ハンドラーにチェーンするだけでよいことに注意してください。

于 2009-09-08T20:36:54.470 に答える
0

セマンティックではなく、プレゼンテーションのみの場合は、クラスと CSS を使用します。

$('.imageList li').hover(
function() {
    $('#imageDisplay').addClass($(this).attr("class"););
},
function() {
    $('#imageDisplay').removeClass($(this).attr("class"););
}
);

マークアップ

<ul class="imageList">
    <li class="deer">Show me a deer</li>
    <li class="cow">Show me a cow</li>
</ul>
<div id="imageDisplay" />

CSS

#imageDisplay {
   width:200px;
   height:200px;
}
div.deer {
   background:red;
}
div.cow {
   background:blue;
}
于 2009-09-08T21:28:59.123 に答える
0

Not a complete answer, but this will guide you to the real solution.

$("a")
  .hover( function(){ $("#some-div").css( "background", "my-image.jpg" ) );
于 2009-09-08T20:30:51.727 に答える