使用jquery突出显示图像映射区域

时间:2010-02-22 13:10:09

标签: jquery

我正在尝试使用jquery hover(),

突出显示图像映射区域

我突出显示在区域上绝对定位的div,我正在尝试在悬停时显示div,但问题是当鼠标悬停在特定区域上时突出显示但即使鼠标移动也很快消失仍然在该地区徘徊,

知道我做错了什么,

        <div class="highlight" id="first_area_highlight"></div>
        <div class="highlight" id="second_area_highlight"></div>
        <map name="worksMap" id="worksMap" class="map-areas">
          <area id="first_area" shape="poly" coords="80,64,176,46,186,95"  />
          <area id="second_area" shape="rect" coords="196,107,272,222"  />
                 .....
        </map>

$(function() {


   $('.highlight').hide();    
   var id;
   $('area').hover(function() {
     id = $(this).attr('id');
     highlight(id);
   },function() {
     unHighlight(id);
   });

   function highlight(id) {
     $('#' + id + '_highlight').show('slow');
   }
   function unHighlight(id) {
     $('#' + id + '_highlight').hide('slow');
   }

});

2 个答案:

答案 0 :(得分:4)

.highlight div与您的areas重叠,当悬停在某个区域时,会突出显示突出显示,但它会消失,因为area会丢失。

您可以做的是在area.mouseenter上显示.highlight并在highlight.mouseleave上隐藏.highlight

以下是这个想法:

$('area')
    .mouseenter(function() {
        var id = $(this).attr('id');
        $('#' + id + '_highlight').show('slow');
    });

$('.highlight')
    .mouseleave(function () {
        $(this).hide('slow');
    })
    .hide();

答案 1 :(得分:1)

你可以试试Raphaël插件,我自己没试过,但这里是demo of hilighting image maps