我是网页设计中的绝对大佬,已经深陷其中。在过去的两周里,我设法制作了一个自定义的谷歌地图,当点击地图外的链接时,会弹出标记和信息窗口。
----- 地图.js
function triggerClick(id) {
google.maps.event.trigger(gmarkers[id],"click")
};
function createMarker(latlng, html, id) {
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map,marker);
});
gmarkers[id] = marker;
}
现在我正在尝试将它与另一个脚本结合起来,该脚本实现了一个动画视差滚动,将页面从点击的链接移动到地图,使用另一个使用 jquery 的脚本。这也有效,但标记+信息窗口弹出失败。我需要的是在滚动结束后弹出的标记+信息窗口。
----- 脚本.js
jQuery(document).ready(function ($) {
$(window).stellar();
var chartLink = $('.chart').find('li');
slide = $('.slide');
htmlbody = $('html,body');
function goToByScroll(dataslide) {
htmlbody.animate({
scrollTop: $('.slide[data-slide="' + dataslide + '"]').offset().top
}, 2000, 'easeInOutQuint');
}
chartLink.click(function (e) {
e.preventDefault();
dataslide = $(this).attr('data-slide');
goToByScroll(dataslide);
});
});
我试图定位的 HTML 链接是:
----- index.html
<ul class="chart">
<li>
<a data-slide="3" href="javascript:triggerClick('bond')">Bond Street</a></li>
<li><a data-slide="3" href="javascript:triggerClick('barbican')">Barbican</a>
</li>
</ul>
据我了解,同一个点击事件同时触发两个不同的事件,一个来自 triggerClick 函数,另一个来自 goToByScroll 函数。
几天来我一直在寻找解决方案并尝试了很多东西,特别是 callback(),但处理单独的脚本超出了我的大脑。谁能帮我一把。
谢谢!