Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.10.2019, 00:58
Интересующийся
Отправить личное сообщение для Johan Посмотреть профиль Найти все сообщения от Johan
 
Регистрация: 25.08.2010
Сообщений: 18

работа с SVG через object
делаю вывод подсказок на интерактивную карту, в js новичок, можете указать где ошибка, буду благодарен


<object data="map.svg" type="image/svg+xml" id="svgmap" width="100%" height="100%"></object>
	
<div class="map-tooltip"></div>


var svgobject = document.getElementById('svgmap');
var svgdom = svgobject.contentDocument;

var tooltip = document.querySelector('.map-tooltip');
var contents = {};

contents['dom-48-a'] = '<img src="img/1.jpg"><h1>тест</h1><p>тест</p>';
contents['dom-37-9'] = '<img src="img/1.jpg"><h1>тест 2</h1><p>тест 2</p>';

 


[].forEach.call(svgdom.querySelectorAll('.HI-map'), function(item) {

  item.addEventListener('click', function() {
    window.open(this.getAttribute('data-link'));
  });
  

  item.addEventListener('mouseenter', function() {
    tooltip.innerHTML = contents[item.getAttribute('data-tooltip')];
    tooltip.style.display = 'block';
  });
  
  item.addEventListener('mousemove', function(e) {


	
  tooltip.style.top =
      (e.pageY + tooltip.clientHeight + 10 < svgdom.body.clientHeight)
          ? (e.pageY + 10 + "px")
          : (svgdom.body.clientHeight + 5 - tooltip.clientHeight + "px");
	
  tooltip.style.left =
      (e.pageX + tooltip.clientWidth + 10 < svgdom.body.clientWidth)
          ? (e.pageX + 10 + "px")
          : (svgdom.body.clientWidth + 5 - tooltip.clientWidth + "px");
	
	

  });
  

  item.addEventListener('mouseleave', function(){
  	tooltip.style.display = 'none';
  });
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Криво отображается SVG через Javascript Ruslan_as jQuery 4 01.08.2014 17:21
принудительная загрузка svg oxxy Общие вопросы Javascript 5 24.07.2014 12:15
Google Chart - не получается построить график из данных приходящих через json FRIE Общие вопросы Javascript 7 18.04.2014 19:07
Удаленная работа на сайте через html страницу Sanches Общие вопросы Javascript 19 11.08.2009 13:21
Работа с окнами через opener. Нид хелп RAUS Events/DOM/Window 1 29.07.2009 19:59