Ok, ich habe ein Problem, vielleicht ein einfaches Problem, ich bin ein Neuling.Wie kann ich ein SVG-Bild mit einem Auswahlmenü verbinden?
Ich habe eine SVG Bild das ist acctualy eine Karte (eine Region Karte), aufgeteilt in Sektoren (das sind die Städte). Alles ist richtig, das SVG funktioniert perfekt. Außerdem habe ich eine einfache Drop-Down-Liste (in HTML). Diese
ist das, was ich will:
, wenn jemand eine Option (eine Stadt) im Menü auswählen, der Selektor (die Region) erscheint ausgewählt. Und wenn jemand den Selektor (die Region) auswählt, erscheint die Option im Menü (die Stadt) ausgewählt.
Ich habe Bilder anhängen.
DANKE SO VIEL.
UPDATE:
Dropdown-Menü HTML-Code:
<label for="sel1">Seleziona Area:</label>
<select class="form-control" id="sel1">
<option>1 - Udine Centro</option>
<option>2 - Rizzi/S. Domenico/Cormor/S. Rocco</option>
<option>3 - Laipacco/San Gottardo</option>
<option>4 - Udine sud</option>
<option>5 - Cussignacco</option>
<option>6 - S. Paolo/S. Osvaldo</option>
<option>7 - Chiavris/Paderno</option>
</select>
Javascript-Code für SVG Bild:
$(document).ready(function() {
$('g.chiavris').click(function() {
$('g.chiavris').fadeOut('slow');
});
$("g.region").hover(function() {
//mouse over
$(this).find('.map-image').css('fill', '#8B8B8B');
\t $(this).find('.map-title').css('display', 'block');
}, function() {
//mouse out
$(this).find('.map-image').css('fill', '#ccc');
$(this).find('.map-title').css('display', 'none');
});
\t $('.region').click(function(event) {
\t \t var regions = $('.region');
\t \t console.log(regions);
\t \t for(var i=0; i<regions.length; i++){
\t \t \t console.log('tutti messi normali '+ i);
\t \t \t $(regions[i]).find('.map-image').css('fill', '#ccc');
\t $(regions[i]).find('.map-title').css('display', 'none');
\t \t \t $(regions[i]).bind('mouseenter mouseleave');
\t \t }
\t \t //DOPO
$(this).find('.map-image').css('fill', '#FF7409');
$(this).find('.map-title').css('display', 'block');
\t \t
$(this).unbind('mouseenter mouseleave');
});
});
UPDATE 2:
OK, bedankt sich bei allen, habe ich Ihren Code wie das Upgrade:
// per selezionare i "polygon" che influisce sul select
$(".map-image").on('click', function(evt) {
// Get the id of the region we clicked on
var regionId = evt.target.id;
// Update the dropdown
$('#sel1 option').removeAttr('selected')
.filter('[value=' + regionId + ']')
.attr('selected', true);
// Highlight the relevant region
setRegion(regionId);
});
// Per selezionare dal select e avere il colore nella mappa
$("#sel1").change(function(evt){
//console.log($(this).val());
var name_region = ($(this).val());
var regions = $(document).find('#'+ name_region).get(0);
//console.log(regions);
$(regions).css('fill', '#FF7409');
});
/*function onRectClick(evt)
{
// Get the id of the region we clicked on
var regionId = evt.target.id;
// Update the dropdown
$("#sel1").val(regionId).change();
// Highlight the relevant region
setRegion(regionId);
}*/
function onSelectChange() {
// Get selected class from dropdown
var selectedRegion = $("#sel1").val();
// Highlight the relevant region
setRegion(selectedRegion);
}
function setRegion(regionId) {
// Remove "selected" class from current region
$("polygon.selected").removeClass("selected");
// Add "selected" class to new region
$('polygon#' + regionId).addClass("selected");
// Note: for addClass() etc to work on SVGs, you need jQuery 3+
}
// Init map based on default select value
onSelectChange();
Was Sie bisher versucht haben? Kannst du etwas Code zeigen? – Christoph
Ich habe meinen Beitrag aktualisiert. Sie können die Codes überprüfen. Ich kann den SVG-Code nicht anhängen, weil es zu lang für den Beitrag ist :( Wenn Sie es brauchen, sagen Sie mir, wie ich das anhängen kann. Danke. Wenn Sie mehr Infos brauchen, fragen Sie mich, danke !! – Elle