SVG-карты с подсказками

  • Автор темы Kroshkalisenok
  • Обновлено
  • 16, May 2024
  • #1
Я создал интерактивную карту SVG, используя Adobe Illustrator и некоторую стилизованную всплывающую подсказку, которая в этом случае отображается после наведения курсора мыши — текст .tooltip-item под svg.

Что мне нужно, так это установить эффект всплывающей подсказки из текста .tooltip-item на карту svg, например, навести курсор на каждую из звезд с различным содержимым всплывающей подсказки.

Я навожу курсор на 1-ю звезду -> моя всплывающая подсказка появляется с текстом 1, чем при наведении 2-й звезды -> появляется всплывающая подсказка с текстом 2 и т. д. (текст1, текст2... похожи, но имеют разные значения, мне нужно применить к ним ссылки и изменить цвет, как сейчас, также звезды могли менять цвет и непрозрачность после наведения)

Вот мой JSFiddle и мой код ниже

HTML

 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;
}


HTML: CSS

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL='https://lumtu.com/yti/dk55kdGRodHRwOi8vdzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbCh52']http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]"> <html xmlns="[URL='https://lumtu.com/yti/b0hh0bWxodHRwOi8vdzMub3JnLzE5OTkveGvkT']http://www.w3.org/1999/xhtml[/URL]"> <head> <meta http-equiv="Content-Type" content="текст/html; кодировка = UTF-8" /> <title>Untitled Document</title> </head> <body> <div class="content"> <svg version="1.1" id="Layer_1" xmlns="[URL='https://lumtu.com/yti/dwccwdmdodHRwOi8vdzMub3JnLzIwMDAvDMw']http://www.w3.org/2000/svg[/URL]" 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="[URL='https://lumtu.com/yti/cgLLgcGxodHRwOi8vZ29vZ2xl2Zv']http://google.pl[/URL]">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):

Kroshkalisenok


Рег
10 Oct, 2011

Тем
89

Постов
191

Баллов
656
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно