Image map on mouse over show div

孤者浪人 提交于 2019-12-13 03:12:17

问题


So I am trying to create multiple image maps on a picture and then based on the image you are hovering over it will pull that specific information from a div that is below the picture and populate it next to the hovered over image.

<div class="runner_div">
  <img src="http://cooleycollective.com/test/slrc/wp-content/uploads/2013/01/Em_full.jpg" width="680" height="705" usemap="#runner_wear" /></a></p>
<map name="runner_wear">
  <area shape="poly" coords="264,18,237,33,243,72,276,83,328,79,311,29," href="#hat" alt="hat"  />
  <area shape="rect" coords="259,69,331,99" href="#" alt="glasses" />

  </map>
</div>

<div class="gear" id=hat>
<h2>Type of hat</h2>
  <p>I love this hat.I wore it when I was running from a bear in the zoo.</p>
</div>
<div class="gear" id="glasses">
  <p>These glasses were hand picked by a Sherpa from Kentucy!</p>
</div>  

I want the divs to stay below, so as to not be hidden, but also to have the functionality to be hoverable when I hover over the image it references. I am not sure if I need to use jQuery for this or even how to create that code.

I feel like the code would do something like: onmouse hover of this imgmap then display the div that this imagemap references. I have no idea what this would look like in code language. Thanks for the help.


回答1:


I assume you want the popup effet.

Please see a demo I've prepared for you using your markup

Here's the working jQuery

var $popup = $('.popup');
$('area').on({
  mouseover : function(e){
    var $this = $(this),
        $obj = $('#'+$this.prop('alt'));

    $popup.text($obj.text()).css({
      top: e.pageY + 25,
      left: e.pageX - ($popup.width()/2),
    }).show();
  },
  mouseout: function(){
    var $this = $(this),
        $obj = $('#'+$this.prop('alt'));    

    $popup.hide(0).empty();
  }
});


来源:https://stackoverflow.com/questions/14299194/image-map-on-mouse-over-show-div

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!