0

http://www.kars4kids.org/charity/v2/nirangahtml/program_pop/meet_animals.asp

上記のリンク、下のアイコンのいずれかを選択すると。選択された状態に変更されますが、問題は、ホバー効果を制限し、その Icon をさらに選択する必要があることです。(私は画像変更を使用しているため)。

以下は私の完全なjqueryコードです。

$(document).ready(function(){
    $('#animal_content_text_horse').css("display", "block");
    $('#animal_pic_horse_span').css("display", "block");
    $('#page_animal_img_horse').css("display", "block");

$('.animal_thumb_link').each(function() {

    $(this).click(function(e) {
    e.preventDefault();
    default_set($(this).attr('id'));

    $(".animal_thumb_link").removeClass("thumbselected");
    $(this).addClass("thumbselected");
    $(".animal_thumb_link").find('img').addClass("imgHoverable");
    $(this).find('img').removeClass("imgHoverable");

   });  

});

       // Change the image of hoverable images
       $(".imgHoverable").hover( function() {
           var hoverImg = HoverImgOf($(this).attr("src"));
           $(this).attr("src", hoverImg).hide().fadeIn(0);
         }, function() {
           var normalImg = NormalImgOf($(this).attr("src"));
           $(this).attr("src", normalImg).show();
         }
       );


    function HoverImgOf(filename)
    {
       var re = new RegExp("(.+)\\.(gif|png|jpg)", "g");
       return filename.replace(re, "$1_r.$2");
    }
    function NormalImgOf(filename)
    {
       var re = new RegExp("(.+)_r\\.(gif|png|jpg)", "g");
       return filename.replace(re, "$1.$2");
    }

});

function default_set(obj12){

var arr = ["horse_content", "camel_content", "peacock_content", "goat_content", "donkey_content", "rooster_content", "sheep_content", "alpacas_content", "cynthia_content", "rabbit_content", "cow_content"];
var arr2 = ["../images/horse_thumb.gif", "../images/camel_thumb.gif", "../images/peacock_thumb.gif", "../images/goat_thumb.gif", "../images/donkey_thumb.gif", "../images/rooster_thumb.gif", "../images/sheep_thumb.gif", "../images/alpacas_thumb.gif", "../images/cynthia_thumb.gif", "../images/rabbit_thumb.gif", "../images/cow_thumb.gif"];


for ( var i = 0; i <= arr.length; i++ ) {
if ( arr[ i ] === obj12 ) {
    old_url = $("#" + obj12).children('img').attr('src');
    new_url = old_url.replace(/thumb/,'thumb_r');
    $("#" + obj12).children('img').attr('src',new_url);
}else{
    $('#' +arr[ i ]).children('img').attr('src',arr2[ i ]);
}

}



}


function load_page(obj1,obj2,obj3){
    /* detect current div if so hide */
    current_pagepharadiv = document.getElementById("pagepharadiv_hidden").value;
    current_pageheadertext = document.getElementById("pageheadertext_hidden").value;
    current_pageimage = document.getElementById("pageimage_hidden").value;

    $('#' + current_pagepharadiv).css("display", "none");
    $('#' + current_pageheadertext).css("display", "none");
    $('#' + current_pageimage).css("display", "none");

    image_hover(obj1);
    image_hover(obj2);
    $('#' + obj3).fadeIn("fast");

    //image_hover(obj3);
    //$('#' + obj1).fadeIn("fast");
    //$('#' + obj2).fadeIn("fast");
    document.getElementById("pagepharadiv_hidden").value = obj1;
    document.getElementById("pageheadertext_hidden").value = obj2;
    document.getElementById("pageimage_hidden").value = obj3;

}

アドバイスをお願いします、乾杯!

4

1 に答える 1

2

必要以上に物事を複雑にしているように思えます。ページを実装する方法は次のとおりです。

  • 下の四角を div として、画像を透明な png にします
  • css :hover を使用して下の四角の色を変更する
  • サーバー上で div 内の各動物のトップ コンテンツ全体を生成します。つまり、3 か所で表示/非表示を切り替える代わりに、11 個の div が次々に作成されます。以下の私のコード例では、クラスがあると仮定していますanimal-content
  • 各トップ div の ID を html5 データ属性として対応するサム リンクに追加します。

このように、jQuery で行う必要があるのは次のとおりです。

$(".animal_thumb_link").click(function() {
  var topId = $(this).data("topId");
  $(".animal_thumb_link").removeClass("thumbselected");
  $(this).addClass("thumbselected");

  $(".animal-content").toggle(function() { return this.id === topId; });
});
于 2012-05-21T09:04:28.517 に答える