谷歌地图-标记在鼠标悬停前闪烁
Google maps - markers flash before bounce onmouseover
我已经构建了一个谷歌地图,其中标记在一些外部链接的滚动时会反弹。我创建了这个短函数来反弹标记:
function makeBounce(marker) {
marker.setAnimation(google.maps.Animation.BOUNCE);
setTimeout(function(){ marker.setAnimation(null); }, 750);
}
我用这个来执行它:
<a onmouseover="javascript:map.panToBounds(bounds);makeBounce(markersArray[1]);" href="javascript:google.maps.event.trigger(markersArray[1], 'click');">Marker name</a>
我注意到的是,就在标记反弹之前,它们会闪烁。这几乎是不可察觉的,但这已经足够让人讨厌了(尤其是因为谷歌自己的博客文章推出了弹跳标记,非常流畅:http://googlegeodevelopers.blogspot.com/2010/12/map-markers-they-move.html)。
我在这里创建了一个JS Fiddle来演示它:http://jsfiddle.net/RmDuz/(滚动蓝色链接查看问题)。
我在Firefox9和Chrome 16中都尝试过,但问题都存在。
有什么想法吗?
问题似乎是,标记图像在反弹之前是动态(重新)加载的,因为在Chrome中,我在标记重新出现然后反弹之前看到了"无图像"框。
编辑:我已经修改了代码,以使用映射API侦听器而不是Javascript函数,希望API代码可能更高效,但没有乐趣:(
google.maps.event.addListener(marker, 'dblclick', (function(marker, i) {
return function() {
marker.setAnimation(google.maps.Animation.BOUNCE);
setTimeout(function(){ marker.setAnimation(null); }, 750);
}
})(marker, i));
我使用dblclick
是因为我不想要mouseover
,这意味着动画是在标记翻转时触发的。我只想在外部链接滚动时触发动画:
<a onmouseover="javascript:google.maps.event.trigger(markersArray[1], 'dblclick');">Link name</a>
我更新了JS Fiddle以反映这一点:http://jsfiddle.net/RmDuz/1/
我也遇到了这个问题。事实证明,设置MarkerOptions optimized: false
或draggable: true
将在标记设置动画之前停止其闪烁。
非优化标记:
// Create a non-optimized marker
var marker = new google.maps.Marker({
position: new google.maps.LatLng(39.107182, -123.501868),
map: map,
optimized: false // stops the marker from flashing
});
// Bounce once
marker.setAnimation(google.maps.Animation.BOUNCE);
marker.setAnimation(null);
可拖动标记:
// Create a draggable marker
var draggableMarker = new google.maps.Marker({
position: new google.maps.LatLng(39.107182, -123.501868),
map: map,
draggable: true // stops the marker from flashing
});
// Bounce once
draggableMarker.setAnimation(google.maps.Animation.BOUNCE);
draggableMarker.setAnimation(null);
如果你看一下谷歌的例子,你会发现他们设置了draggable: true
。
相关文章:
- 悬停时setInterval中的图像闪烁
- 悬停时损坏的CSS菜单 - 闪烁效果
- jQuery图像在悬停时闪烁
- Javascript拉斐尔奇怪的闪烁发生在我鼠标悬停的第三次
- 当我将鼠标悬停在iframe上时,DIV会闪烁
- 为什么jquery是悬停的,在下拉菜单上滑动功能闪烁
- 更改元素父元素的背景颜色时停止在
上闪烁鼠标悬停?jQuery/JS. - 当鼠标悬停在其上时,Div 会闪烁
- jQuery悬停气泡导致循环闪烁效果
- 在元素悬停时闪烁,同时尝试在同一事件上缩小其大小
- Bootstrap 3选项卡,活动选项卡仅在firefox中悬停时闪烁
- 在元素中使用mouseover和mouseout会使悬停持续闪烁
- jQuery悬停动画期间的最后一次潜水闪烁
- 谷歌地图-标记在鼠标悬停前闪烁
- 在悬停上添加边框会导致闪烁
- 悬停效果产生闪烁
- 鼠标悬停状态闪烁
- Jquery改变背景颜色悬停,不断闪烁
- jQuery覆盖悬停闪烁问题
- 鼠标悬停/鼠标离开,鼠标进入/鼠标离开,鼠标悬停闪烁问题