2015-04-18 3 views
0

В основном у меня есть карта, и я хочу это сделать, когда я наводил на одно из состояний, чтобы получить всплывающее сообщение с указанием состояния. Это то, что я сделал до сих пор: (это только часть кода)Всплывающее сообщение в CSS/HTML

var states = map.selectAll('path.state') 
.data(states.features) 
    .enter().append('path') 
    .attr('class', 'state') 
    .attr('id', function(d) {console.log(d);return d.id;}) 
    .attr('d', path) 
    .attr("stroke","white") 
    .attr("stroke-width",2) 
    .attr('fill', 'lightgreen') 
    .on("mousemove",fnk) 
    .on("mouseout",fnk2) 

Когда функция «fnk()» вызывается (на mousemove) она в основном подчеркивает состояние в зеленый цвет, и он хранит имя из состояние в переменной «dsa».

function fnk() { 
asd = d3.select(this).style("fill","green"); 
dsa = asd.data()[0].properties.gn_name;} 

Теперь то, что я хочу сделать то, что эти данные в переменных dsa показан пользователю в каком-то всплывающее сообщении или некоторый прямоугольник элемента, который является активным, когда мышь находится на состоянии. Я попытался с «предупреждением», но затем пользователю нужно нажать кнопку «ОК», чтобы удалить сообщение, и я хочу, чтобы сообщение исчезло само по себе.

+1

Возможно, вы захотите добавить дополнительную информацию о том, какой поставщик карт и/или плагины jQuery вы используете. Поставщики карт, такие как OpenStreetMap/OpenLayers или Google Maps, обычно предлагают возможность создавать всплывающие окна/информационные окна в своих соответствующих API, но они делают это по-разному. Как произвольно выбранные примеры см. На странице https://developers.google.com/maps/documentation/javascript/examples/infowindow-simple для Карт Google и http://dev.openlayers.org/examples/osm-marker-popup.html./http://dev.openlayers.org/examples/osm-marker-popup.js для OpenLayers. –

+1

(Не вписывался в предыдущий комментарий). Кроме того, есть плагины jQuery, которые вы можете использовать для более общих плагинов. Этот произвольно выбранный сайт (http://www.sitepoint.com/10-jquery-popup-window-image-slider-plugins/) перечисляет некоторые из них, но я не проверял, насколько текущим является этот выбор. –

+0

Im, использующий json-файл, содержащий все требуемые координаты для создаваемой карты. Я просто пытаюсь найти способ добавления прямоугольника с именем состояния внутри него, когда мышь перемещается в одном из состояний. –

ответ

0

Я хотел бы создать ряд дивы, чтобы использовать в качестве всплывающих элементов, расположите их над каждым государством, и установить его CSS

visibility: hidden 

А потом внутри Fnk

<"your pop-up element">.style("visibility", "hidden") 

И конечно , не противное в fnk2

.style("visibility", "visible") 

Я не знаю много о DOM и обработки в JS, но это действительно архаичной anyw ау.

Вы должны действительно заглянуть в JQuery, вы можете заставить материал исчезать и исчезать красивее (вместо того, чтобы просто исчезать и появляться, как код, который я опубликовал). Не говоря уже, он требует меньше кода и более портативен в браузерах.

+0

Да, но это означало бы, что я должен создать XY количество div, и имя состояния помещается в переменную, когда вы наводите курсор на состояние. Я просто пытаюсь найти способ отображения переменных данных в прямоугольнике, который активен, когда мышь зависает над определенным состоянием. –

+0

JavaScript только имеет подтверждения, подсказки и предупреждения, и все 3 требуют нажатия кнопки, поэтому, если вы ищете однострочное решение JS, вам не повезло. –

Смежные вопросы