Mapka svg z tooltipami

0

Cześć, utworzyłem mapę SVG za pomocą Illustratora - 3 gwiazdki z tłem. Po najechaniu na każdą zmienia się jej opacity.

Mam mam też uproszczoną wersję ładnego tooltipu znalezioną na tej stronie. Chodzi o styl 'classic'

Próbuje połączyć te 2 opcje, mianowicie po najechaniu na gwiazdkę pojawia się nad nią w/w tooltip z podobną zawartością.
Zależ mi na tym, żeby w tooltipach były różne info. przy każdej gwiazdce (można było dodać link i zmienić kolor fontu) oraz gwiazdka zmieniała kolor.

Moja mapka tutaj , kod poniżej.
Proszę o pomoc jeżeli da się to zachować tylko w html/css byłoby super. Natomiast js też wchodzi w grę - ja jeszcze raczkuję w tym temacie.

html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
  </head>
  <body>
    <div class="content">
      <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1000px" height="561.46px" viewBox="0 0 1000 561.46" enable-background="new 0 0 1000 561.46" xml:space="preserve">
          <image overflow="visible" width="960" height="539" xlink:href="http://zielonekamionki.pl/new/wp-content/uploads/2018/04/milky_way.jpg"  transform="matrix(1.0417 0 0 1.0417 0 9.765625e-04)">
         </image>
         <a xlink:href="#"><polygon fill="#FFFFFF" points="226.5,172.62 253.33,255.21 340.17,255.21 269.92,306.25 296.75,388.84 226.5,337.8 156.25,388.84
            183.08,306.25 112.83,255.21 199.67,255.21 "/></a>
         <a xlink:href="#"><polygon fill="#FFFFFF" points="499.51,172.62 526.34,255.21 613.18,255.21 542.93,306.25 569.76,388.84 499.51,337.8
            429.26,388.84 456.09,306.25 385.84,255.21 472.68,255.21 "/></a>
         <a xlink:href="#"><polygon fill="#FFFFFF" points="773.5,172.62 800.33,255.21 887.17,255.21 816.92,306.25 843.75,388.84 773.5,337.8 703.25,388.84
            730.08,306.25 659.83,255.21 746.67,255.21 "/></a>
      </svg>
      <div class="tooltip tooltip-effect-1">
        <div clas="tooltip-item">Text with tooltip</div>
        <div class="tooltip-content clearfix">
          <div class="tooltip-text">
            <ul>
              <li>
                <h3>Dom na sprzedaż: A1</h3>
              </li>
              <li>Powierzchnia użytkowa (m<sup>2</sup>): 100,69</li>
              <li>Cena brutto: 349 000zł</li>
              <li><a href="http://google.pl">Karta domu</a> <i>1000kb</i></li>
              <li>Dostępność <span style="color:red">Sprzedane</span></li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </body>
</html>

css

body {
  margin: 0;
}

.content {
  margin: 0 auto;
  width: 100%;
  display: block;
}

svg {
  width: 100%;
}

svg a {
  opacity: 1;
  transition: 0.2s opacity;
}

svg a:hover {
  opacity: 0.3;
}

.tooltip {
  position: relative;
  z-index: 999;
  margin-top: 5%;
  margin-left: 10%;
}

.tooltip-item {
  cursor: pointer;
  text-align: center;
  font-weight: 700;
  padding-left: 10%;
  padding-right: 10%;
}

.tooltip-item::after {
  content: '';
  position: absolute;
  width: 360px;
  height: 20px;
  bottom: 100%;
  left: 50%;
  pointer-events: none;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

.tooltip:hover .tooltip-item::after {
  pointer-events: auto;
}

.tooltip-content {
  position: absolute;
  z-index: 9999;
  width: 200px;
  left: 50%;
  margin: 0 0 20px -300px;
  bottom: 100%;
  text-align: left;
  font-size: 0.765em;
  line-height: 1.4;
  box-shadow: -5px -5px 15px rgba(48, 54, 61, 0.2);
  background: #2a3035;
  opacity: 0;
  cursor: default;
  pointer-events: none;
}

.tooltip-effect-1 .tooltip-content {
  -webkit-transform: translate3d(0, -10px, 0);
  transform: translate3d(0, -10px, 0);
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
  transition: opacity 0.3s, transform 0.3s;
}

.tooltip:hover .tooltip-content {
  pointer-events: auto;
  opacity: 1;
  -webkit-transform: translate3d(0, 0, 0) rotate3d(0, 0, 0, 0);
  transform: translate3d(0, 0, 0) rotate3d(0, 0, 0, 0);
}

.tooltip-content::after {
  content: '';
  top: 100%;
  left: 50%;
  border: solid transparent;
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-color: transparent;
  border-top-color: #2a3035;
  border-width: 10px;
  margin-left: -10px;
}

.tooltip-text {
  font-size: 0.68em;
  line-height: 1.65;
  display: block;
  padding: 0 2.21em 2.21em 2.31em;
  color: #fff;
}

.tooltip-text ul {
  padding: 0;
}
0

Jeśli chcesz używać tylko Css'a to na moje powinieneś zaprojektować tooltip'y już w ilustratorze. dajesz im domyślnie visibility: hidden a po najechaniu na konkretną gwiazdkę (dając każdej osobne id) polygon:hover + .tooltip { visibility: visible;}

jak na moje

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1