영역 위로 마우스를 가져갈 때 이미지 맵의 버그

패트릭 맨서

다른 대륙 위로 마우스를 가져갈 수있는 대화 형 세계지도가 있습니다. 그러면 해당 대륙이 마우스 오버 효과를 낼 수 있고 해당 대륙의 이름이 해당 지역에 배치됩니다. 이미지 맵으로이 작업을 수행했으며 영역 위로 마우스를 가져갈 때 jQuery를 통해 이미지를 변경했습니다. 이렇게 :

$(document).ready(function() {
  $('.map-area').mouseover(function(e) {
    var areaId = $(e.target).attr('id');
    $('#worldMap').attr('src', 'http://i.imgur.com/' + areaId + '.png');
    $('[id^=text_]').removeClass('open');
    $('#text_' + areaId).addClass('open');
  });

  $('.map-area').mouseout(function() {
    $('#worldMap').attr('src', 'http://i.imgur.com/5H1hiBU.png');
    $('[id^=text_]').removeClass('open');
  });
});
.continent-text {
  position: absolute;
  color: #fff;
  text-transform: uppercase;
  font-weight: normal;
  font-size: 1rem;
}

.continent-text.eu {
    display: none;
    left: 28%;
    top: 35%;
}

.continent-text.eu.open {
      display: block;
}

.continent-text.as {
    display: none;
    left: 40%;
    top: 32%;
}

.continent-text.as.open {
      display: block;
}

.continent-text.na {
    display: none;
    left: 8%;
    top: 37%;
}

.continent-text.na.open {
      display: block;
}

.continent-text.sa {
    display: none;
    left: 15%;
    top: 77%;
}
.continent-text.sa.open {
      display: block;
}

.continent-text.af {
    display: none;
    left: 28%;
    top: 60%;
}

.continent-text.af.open {
      display: block;
}

.continent-text.oc {
    display: none;
    left: 46%;
    top: 89%;
}

.continent-text.oc.open {
      display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="http://i.imgur.com/5H1hiBU.png" usemap="#image-map" id="worldMap">

<map name="image-map" class="continent-picker">
  <area class="map-area" id="OG7CyJf" target="" alt="Europe" title="Europe" href="#" coords="624,190,632,177,615,172,609,162,601,161,608,155,595,142,602,130,597,85,607,78,558,70,508,96,455,212,474,238,501,233,546,222,584,239,588,219" shape="poly">
  <area class="map-area" id="epfSt9E" target="" alt="Africa" title="Africa" href="#" coords="593,509,666,473,686,378,664,318,639,321,620,284,608,259,576,241,540,226,471,239,430,339,515,497" shape="poly">
  <area class="map-area" id="jx6tE7q" target="" alt="North America" title="North America" href="#" coords="272,347,287,318,310,313,478,104,479,0,1,0,0,159,57,170,97,164,133,236,189,318" shape="poly">
  <area class="map-area" id="XFfneee" target="" alt="South America" title="South America" href="#" coords="272,345,286,317,310,314,377,349,411,386,386,466,413,572,268,573,285,436,254,374" shape="poly">
  <area class="map-area" id="y4dLClt" target="" alt="Oceania" title="Oceania" href="#" coords="926,393,926,370,970,364,1046,480,1030,557,939,542,898,501,851,501,832,444,891,401" shape="poly">
  <area class="map-area" id="ZUqSyEM" target="" alt="Asia" title="Asia" href="#" coords="609,77,633,7,838,8,1074,74,1074,130,954,318,926,370,925,393,888,401,844,416,709,371,664,318,641,321,608,260,588,227,586,222,625,189,631,177,614,171,608,161,601,160,607,155,594,141,601,130,597,84" shape="poly">
</map>
<div class="continent-text eu open" id="text_OG7CyJf">Europe</div>
<div class="continent-text as" id="text_ZUqSyEM">Asia</div>
<div class="continent-text na" id="text_jx6tE7q">North America</div>
<div class="continent-text sa" id="text_XFfneee">South America</div>
<div class="continent-text oc" id="text_y4dLClt">Oceania</div>
<div class="continent-text af" id="text_epfSt9E">Africa</div>

텍스트의보다 정확한 배치는 https://codepen.io/kerowan/pen/bWEVod를 참조하십시오.

문제 : 영역의 텍스트 위로 마우스를 가져 가면 영역이 깜박이기 시작합니다. 나는 이것이 jQuery mouseovermouseout부분에서 나온 것이라고 생각합니다 . 텍스트 위로 마우스를 가져 가면 jQuery는 해당 텍스트 mouseout.map-area. 이 문제를 해결하는 방법을 모르겠습니다. 올바른 방향으로 조금만 이동하면 감사하겠습니다!

시바 127

pointer-events: none;텍스트에 사용할 수 있습니다 .

$(document).ready(function() {
  $('.map-area').mouseover(function(e) {
    var areaId = $(e.target).attr('id');
    $('#worldMap').attr('src', 'http://i.imgur.com/' + areaId + '.png');
    $('[id^=text_]').removeClass('open');
    $('#text_' + areaId).addClass('open');
  });

  $('.map-area').mouseout(function() {
    $('#worldMap').attr('src', 'http://i.imgur.com/5H1hiBU.png');
    $('[id^=text_]').removeClass('open');
  });
});
.continent-text {
  position: absolute;
  pointer-events: none;
  color: #fff;
  text-transform: uppercase;
  font-weight: normal;
  font-size: 1rem;
}

.continent-text.eu {
    display: none;
    left: 28%;
    top: 35%;
}

.continent-text.eu.open {
      display: block;
}

.continent-text.as {
    display: none;
    left: 40%;
    top: 32%;
}

.continent-text.as.open {
      display: block;
}

.continent-text.na {
    display: none;
    left: 8%;
    top: 37%;
}

.continent-text.na.open {
      display: block;
}

.continent-text.sa {
    display: none;
    left: 15%;
    top: 77%;
}
.continent-text.sa.open {
      display: block;
}

.continent-text.af {
    display: none;
    left: 28%;
    top: 60%;
}

.continent-text.af.open {
      display: block;
}

.continent-text.oc {
    display: none;
    left: 46%;
    top: 89%;
}

.continent-text.oc.open {
      display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="http://i.imgur.com/5H1hiBU.png" usemap="#image-map" id="worldMap">

<map name="image-map" class="continent-picker">
  <area class="map-area" id="OG7CyJf" target="" alt="Europe" title="Europe" href="#" coords="624,190,632,177,615,172,609,162,601,161,608,155,595,142,602,130,597,85,607,78,558,70,508,96,455,212,474,238,501,233,546,222,584,239,588,219" shape="poly">
  <area class="map-area" id="epfSt9E" target="" alt="Africa" title="Africa" href="#" coords="593,509,666,473,686,378,664,318,639,321,620,284,608,259,576,241,540,226,471,239,430,339,515,497" shape="poly">
  <area class="map-area" id="jx6tE7q" target="" alt="North America" title="North America" href="#" coords="272,347,287,318,310,313,478,104,479,0,1,0,0,159,57,170,97,164,133,236,189,318" shape="poly">
  <area class="map-area" id="XFfneee" target="" alt="South America" title="South America" href="#" coords="272,345,286,317,310,314,377,349,411,386,386,466,413,572,268,573,285,436,254,374" shape="poly">
  <area class="map-area" id="y4dLClt" target="" alt="Oceania" title="Oceania" href="#" coords="926,393,926,370,970,364,1046,480,1030,557,939,542,898,501,851,501,832,444,891,401" shape="poly">
  <area class="map-area" id="ZUqSyEM" target="" alt="Asia" title="Asia" href="#" coords="609,77,633,7,838,8,1074,74,1074,130,954,318,926,370,925,393,888,401,844,416,709,371,664,318,641,321,608,260,588,227,586,222,625,189,631,177,614,171,608,161,601,160,607,155,594,141,601,130,597,84" shape="poly">
</map>
<div class="continent-text eu open" id="text_OG7CyJf">Europe</div>
<div class="continent-text as" id="text_ZUqSyEM">Asia</div>
<div class="continent-text na" id="text_jx6tE7q">North America</div>
<div class="continent-text sa" id="text_XFfneee">South America</div>
<div class="continent-text oc" id="text_y4dLClt">Oceania</div>
<div class="continent-text af" id="text_epfSt9E">Africa</div>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

버튼 위로 마우스를 가져갈 때 범위의 CSS 색상 변경

분류에서Dev

링크 위로 마우스를 가져 가지 않고 마우스를 가져갈 때 버튼 내부의 링크 색상을 변경하는 방법

분류에서Dev

텍스트 위로 마우스를 가져갈 때 오버레이 만들기

분류에서Dev

버튼 위로 마우스를 가져갈 때 이미지를 표시하는 방법 (상속 없음)

분류에서Dev

상위 요소 위로 마우스를 가져갈 때 이미지 숨기기

분류에서Dev

이미지 위로 마우스를 가져갈 때만 범위 요소 표시

분류에서Dev

텍스트 목록 위로 마우스를 가져갈 때 이미지 변경

분류에서Dev

컨테이너 div 위로 마우스를 가져갈 때 이미지 교체

분류에서Dev

WPF 버튼 위로 마우스를 가져갈 때 이미지를 변경하는 이미지 버튼을 만드는 방법은 무엇입니까?

분류에서Dev

이미지의 <영역> 위로 마우스를 가져 가면 <div>가 나타나게하는 방법

분류에서Dev

이미지 위로 마우스를 가져갈 때만 표시되는 이미지 텍스트 위에

분류에서Dev

영역 위로 마우스를 가져갈 때 CSS 깜박임을 방지하려면 어떻게해야합니까?

분류에서Dev

영역 위로 마우스를 가져갈 때 CSS 깜박임을 방지하려면 어떻게해야합니까?

분류에서Dev

img 위로 마우스를 가져갈 때 텍스트가있는 오버레이 만들기

분류에서Dev

상위 메뉴 항목 위로 마우스를 가져갈 때 배경에 오버레이 표시

분류에서Dev

사용자가 이미지 위로 마우스를 가져갈 때 페이지의 특정 좌표로 이동하려면 어떻게해야합니까?

분류에서Dev

mapper.js로 이미지의 마우스 오버 영역 강조 표시는 페이지가 다시로드 될 때만 작동합니다.

분류에서Dev

CSS를 사용하여 버튼 위로 마우스를 가져갈 때 사이트 배경 이미지를 변경하려면 어떻게해야합니까?

분류에서Dev

페이드 효과로 마우스를 가져갈 때 이미지 교체

분류에서Dev

이미지 위로 마우스를 가져갈 때 반투명 색상 오버레이가있는 캡션 표시

분류에서Dev

텍스트 위로 마우스를 가져갈 때 이미지의 불투명도를 어떻게 변경합니까?

분류에서Dev

링크가있는 이미지 위로 마우스를 가져갈 때 CSS 스프라이트 문제

분류에서Dev

디버그 모드에서 변수 위로 마우스를 가져갈 때마다 MS Visual Studio Express 2012 Desktop이 충돌 함

분류에서Dev

이미지 위로 마우스를 가져갈 때 텍스트를 표시 할 수 없음

분류에서Dev

링크 위로 마우스를 가져갈 때 이미지를 커서로 설정하는 방법

분류에서Dev

TailwindCSS에서 div 위로 마우스를 가져갈 때 버튼 표시

분류에서Dev

이미지 위에있는 버튼 위로 마우스를 가져갈 때 이미지에 마우스 오버 효과를 적용하는 방법은 무엇입니까?

분류에서Dev

이미지 위로 마우스를 가져갈 때 제목에 밑줄을 긋습니다.

분류에서Dev

subdiv 위로 마우스를 가져갈 때 기본 div의 배경 변경

Related 관련 기사

  1. 1

    버튼 위로 마우스를 가져갈 때 범위의 CSS 색상 변경

  2. 2

    링크 위로 마우스를 가져 가지 않고 마우스를 가져갈 때 버튼 내부의 링크 색상을 변경하는 방법

  3. 3

    텍스트 위로 마우스를 가져갈 때 오버레이 만들기

  4. 4

    버튼 위로 마우스를 가져갈 때 이미지를 표시하는 방법 (상속 없음)

  5. 5

    상위 요소 위로 마우스를 가져갈 때 이미지 숨기기

  6. 6

    이미지 위로 마우스를 가져갈 때만 범위 요소 표시

  7. 7

    텍스트 목록 위로 마우스를 가져갈 때 이미지 변경

  8. 8

    컨테이너 div 위로 마우스를 가져갈 때 이미지 교체

  9. 9

    WPF 버튼 위로 마우스를 가져갈 때 이미지를 변경하는 이미지 버튼을 만드는 방법은 무엇입니까?

  10. 10

    이미지의 <영역> 위로 마우스를 가져 가면 <div>가 나타나게하는 방법

  11. 11

    이미지 위로 마우스를 가져갈 때만 표시되는 이미지 텍스트 위에

  12. 12

    영역 위로 마우스를 가져갈 때 CSS 깜박임을 방지하려면 어떻게해야합니까?

  13. 13

    영역 위로 마우스를 가져갈 때 CSS 깜박임을 방지하려면 어떻게해야합니까?

  14. 14

    img 위로 마우스를 가져갈 때 텍스트가있는 오버레이 만들기

  15. 15

    상위 메뉴 항목 위로 마우스를 가져갈 때 배경에 오버레이 표시

  16. 16

    사용자가 이미지 위로 마우스를 가져갈 때 페이지의 특정 좌표로 이동하려면 어떻게해야합니까?

  17. 17

    mapper.js로 이미지의 마우스 오버 영역 강조 표시는 페이지가 다시로드 될 때만 작동합니다.

  18. 18

    CSS를 사용하여 버튼 위로 마우스를 가져갈 때 사이트 배경 이미지를 변경하려면 어떻게해야합니까?

  19. 19

    페이드 효과로 마우스를 가져갈 때 이미지 교체

  20. 20

    이미지 위로 마우스를 가져갈 때 반투명 색상 오버레이가있는 캡션 표시

  21. 21

    텍스트 위로 마우스를 가져갈 때 이미지의 불투명도를 어떻게 변경합니까?

  22. 22

    링크가있는 이미지 위로 마우스를 가져갈 때 CSS 스프라이트 문제

  23. 23

    디버그 모드에서 변수 위로 마우스를 가져갈 때마다 MS Visual Studio Express 2012 Desktop이 충돌 함

  24. 24

    이미지 위로 마우스를 가져갈 때 텍스트를 표시 할 수 없음

  25. 25

    링크 위로 마우스를 가져갈 때 이미지를 커서로 설정하는 방법

  26. 26

    TailwindCSS에서 div 위로 마우스를 가져갈 때 버튼 표시

  27. 27

    이미지 위에있는 버튼 위로 마우스를 가져갈 때 이미지에 마우스 오버 효과를 적용하는 방법은 무엇입니까?

  28. 28

    이미지 위로 마우스를 가져갈 때 제목에 밑줄을 긋습니다.

  29. 29

    subdiv 위로 마우스를 가져갈 때 기본 div의 배경 변경

뜨겁다태그

보관