谷歌地图标记脉冲动画?

mar*_*rix 15 animation google-maps google-maps-api-3

我想知道有没有办法让谷歌地图标记脉动?喜欢这里:http://plebeosaur.us/etc/map/

Rya*_*nOC 17

检查完代码后,我注意到在您提供的演示中使用了CSS pulsate.很高兴看到其他的例子.

他使用静态图像作为中心.

这是与...一起玩的代码... http://jsfiddle.net/86Ejf/945/

var image = new google.maps.MarkerImage(
    'bluedot_retina.png',
    null, // size
    null, // origin
    new google.maps.Point( 8, 8 ), // anchor (move to center of marker)
    new google.maps.Size( 17, 17 ) // scaled size (required for Retina display icon)
);
Run Code Online (Sandbox Code Playgroud)


use*_*289 6

您提供的链接使用纯css来制作此动画:

@-moz-keyframes pulsate {
    from {
        -moz-transform: scale(0.25);
        opacity: 1.0;
    }
    95% {
        -moz-transform: scale(1.3);
        opacity: 0;
    }
    to {
        -moz-transform: scale(0.3);
        opacity: 0;
    }
}
@-webkit-keyframes pulsate {
    from {
        -webkit-transform: scale(0.25);
        opacity: 1.0;
    }
    95% {
        -webkit-transform: scale(1.3);
        opacity: 0;
    }
    to {
        -webkit-transform: scale(0.3);
        opacity: 0;
    }
}
/* get the container that's just outside the marker image, 
    which just happens to have our Marker title in it */
#map_canvas div.gmnoprint[title="I might be here"] {
    -moz-animation: pulsate 1.5s ease-in-out infinite;
    -webkit-animation: pulsate 1.5s ease-in-out infinite;
    border:1pt solid #fff;
    /* make a circle */
    -moz-border-radius:51px;
    -webkit-border-radius:51px;
    border-radius:51px;
    /* multiply the shadows, inside and outside the circle */
    -moz-box-shadow:inset 0 0 5px #06f, inset 0 0 5px #06f, inset 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f;
    -webkit-box-shadow:inset 0 0 5px #06f, inset 0 0 5px #06f, inset 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f;
    box-shadow:inset 0 0 5px #06f, inset 0 0 5px #06f, inset 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f;
    /* set the ring's new dimension and re-center it */
    height:51px!important;
    margin:-18px 0 0 -18px;
    width:51px!important;
}


/* hide the superfluous marker image since it would expand and shrink with its containing element */
/*  #map_canvas div[style*="987654"][title] img {*/
    #map_canvas div.gmnoprint[title="I might be here"] img {
        display:none;
    }
    /* compensate for iPhone and Android devices with high DPI, add iPad media query */
    @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (device-width: 768px) {
        #map_canvas div.gmnoprint[title="I might be here"] {
            margin:-10px 0 0 -10px;
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我复制他们的代码和他们的CSS时,可以确认它在我的网站上有效


Fro*_*y Z 5

如果您不介意IE/Edge 兼容性,这里的SVG可以创造奇迹。

我已经创建了这个蓝色脉动点(改编自this)。

警告:动画不在 Edge 18 上播放(但应该在 Edge 75上播放)。

只需替换标记属性中的图像:

var marker = new google.maps.Marker({
  //...
  icon: {
    url: 'path/to/your/image.svg',
    //...
  },
});
Run Code Online (Sandbox Code Playgroud)


Ada*_*ela 3

这可能会部分回答你的问题。您可以使用动画折线,如下例所示: https ://developers.google.com/maps/documentation/javascript/examples/overlay-symbol-animate

当然,如果需要,您可以构建更复杂的动画。您还可以使用 setInterval() 图像(透明 PNG)标记或其 css 样式(根据您的示例的 box-shadow)进行切换,以便它看起来像动画。