gpt4 book ai didi

javascript - 从 jQuery/Js 添加类到谷歌标记

转载 作者:行者123 更新时间:2023-11-30 14:48:41 24 4
gpt4 key购买 nike

如何为标记在不同位置的每个标记添加一个 class 到 google 标记中。这样我就可以在点击这些标记时执行 .fadeIn().fadeOut() 功能。

我不认为添加它会起作用。

var NewYork = new google.maps.Marker({
position: mapOptions.center,
map: map,
icon: img
});
marker.addListener('click', changeContent);
}

function changeContent() {
$("#klk-map-content-1").fadeOut(fast, function(){
$("#klk-map-content-2").fadeIn("slow");
});
}

左侧也是每个标记的内容。因此,当用户选择其中一个标记时,内容将发生变化。

这是片段:(请展开片段)

function initialize() {

var mapOptions = {
center: {
lat: 40.7499256,
lng: -73.9854028
},
zoom: 3,
zoomControl: false,
panControl: false,
streetViewControl: false
};

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

var img = "/image/JWM0W.png";

var NewYork = new google.maps.Marker({
position: mapOptions.center,
map: map,
icon: img
});

var London = new google.maps.Marker({
position: {lat: 51.5106122, lng: -0.1529072},
map: map,
icon: img
});

var Paris = new google.maps.Marker({
position: {lat: 48.8588589, lng: 2.3470599},
map: map,
icon: img
});

var HongKong = new google.maps.Marker({
position: {lat: 22.2753729, lng: 114.1757384},
map: map,
icon: img
});

var markers = {
'NewYork': NewYork,
'London': London,
'Paris': Paris,
'HongKong': HongKong
};

var styles = [
{
"featureType": "water",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#d3d3d3"
}
]
},
{
"featureType": "transit",
"stylers": [
{
"color": "#808080"
},
{
"visibility": "off"
}
]
},
{
"featureType": "road.highway",
"elementType": "geometry.stroke",
"stylers": [
{
"visibility": "on"
},
{
"color": "#b3b3b3"
}
]
},
{
"featureType": "road.highway",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#ffffff"
}
]
},
{
"featureType": "road.local",
"elementType": "geometry.fill",
"stylers": [
{
"visibility": "on"
},
{
"color": "#ffffff"
},
{
"weight": 1.8
}
]
},
{
"featureType": "road.local",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#d7d7d7"
}
]
},
{
"featureType": "poi",
"elementType": "geometry.fill",
"stylers": [
{
"visibility": "on"
},
{
"color": "#ebebeb"
}
]
},
{
"featureType": "administrative",
"elementType": "geometry",
"stylers": [
{
"color": "#a7a7a7"
}
]
},
{
"featureType": "road.arterial",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#ffffff"
}
]
},
{
"featureType": "road.arterial",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#ffffff"
}
]
},
{
"featureType": "landscape",
"elementType": "geometry.fill",
"stylers": [
{
"visibility": "on"
},
{
"color": "#efefef"
}
]
},
{
"featureType": "road",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#696969"
}
]
},
{
"featureType": "administrative",
"elementType": "labels.text.fill",
"stylers": [
{
"visibility": "on"
},
{
"color": "#737373"
}
]
},
{
"featureType": "poi",
"elementType": "labels.icon",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "poi",
"elementType": "labels",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "road.arterial",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#d6d6d6"
}
]
},
{
"featureType": "road",
"elementType": "labels.icon",
"stylers": [
{
"visibility": "off"
}
]
},
{},
{
"featureType": "poi",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#dadada"
}
]
}
];

map.setOptions({styles: styles});

function getCoords (position) {
var text = position.replace(/[()]/g,'').split(", ");
var lat = Number(text[0]);
var lng = Number(text[1]);

return {
lat: lat,
lng: lng
};
}

$('.nav li').on('click', function () {
$('.nav li').removeClass('active');
$(this).addClass('active');
var id = $(this).attr('id');
$('#active').animate({
'margin-left': $(this).offset().left
});
var position = String(markers[id].getPosition());
map.panTo(new google.maps.LatLng(getCoords(position).lat, getCoords(position).lng));
});

}

google.maps.event.addDomListener(window, 'load', initialize);
* {
box-sizing: border-box !important;
}

html, body {
height: 100%;
margin: 0;
padding: 0;
}

#map-canvas {
height: 85%;
width: 100%;
}

#overlay {
background-color: black;
height: 100%;
width: 100%;
z-index: 1000;
}

#active {
background-color: #333;
display: block;
margin-bottom: -5px;
height: 5px;
width: 25.00%;
position: relative;
z-index: 999;
}

.nav {
display: table;
height: 15%;
list-style: none;
margin: 0;
padding: 0;
width: 100%;
}
.nav li {
border-left: 1px solid #E5E5E5;
color: #787878;
cursor: pointer;
display: table-cell;
font-family: 'Sanchez', serif;
text-align: center;
vertical-align: middle;
width: 25%;
-webkit-transition: all 0.5s linear;
transition: all 0.5s linear;
}
.nav li:first-child {
border-left: none;
}
<!DOCTYPE html>
<html>

<head>
<title></title>
<!-- Link -->
<link rel="stylesheet prefetch" href="https://fonts.googleapis.com/css?family=Sanchez">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>

<body>
<!-- Content -->
<div id="map-canvas" style="position: relative; overflow: hidden;"></div>
<span id="active"></span>
<ul class="nav">
<li class="active" id="NewYork">New York</li>
<li id="London">London</li>
<li id="Paris">Paris</li>
<li id="HongKong">Hong Kong</li>
</ul>

<div id="overlay" style="display: block; position: absolute; z-index: 1000; background-color: white; top: 50px; left: 10px; height: auto; width: 300px; overflow: auto; border-top: 5px green solid; padding: 1rem;">
<div class="klk-map-contents" id="klk-map-content-1">Content 1</div>
<div class="klk-map-contents" id="klk-map-content-2" style="display: none;">Content 2</div>
</div>


<!-- Script CDN -->
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=your_api_key"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script type="text/javascript" src="js/function.js"></script>


<!-- Script -->
<script type="text/javascript">
$("#map-markers-1").click(function(e){
$("#klk-map-content-1").fadeOut("fast", function(){
$("#klk-map-content-2").fadeIn("slow");
});
});
</script>
</body>
</html>

最佳答案

好的,我就是这样解决的,你的方向很好。

先猜一猜:

var NewYork = new google.maps.Marker({
position: mapOptions.center,
map: map,
icon: img
});
marker.addListener('click', changeContent);
}

function changeContent() {
$("#klk-map-content-1").fadeOut(fast, function(){
$("#klk-map-content-2").fadeIn("slow");
});
}

您的代码中没有名为 marker 的任何内容,因此如果您真的想向 New York 标记添加一个事件监听器,您应该这样写:

NewYork.addListener('click', changeContent);

并在 fadeout() 中将 fast 写为“fast”

这是你的例子恢复工作:

http://jsbin.com/hukike/1/edit?html,css,js,output

关于javascript - 从 jQuery/Js 添加类到谷歌标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48495324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com