在新的谷歌地图中,当你点击 map 时,它看起来像一个圆圈从你点击的点开始动画,然后扩大然后消失。当您点击一条道路时,会出现一个点,并且似乎每隔几秒跳动一次。使用或不使用谷歌地图如何实现这一效果?
换句话说,用户可以点击页面上的空白区域并获得相同的动画点击效果,其中:
1) 单击 HTML 页面或 div 内的任意位置会导致圆圈从用户单击的位置缓慢扩展到大约 5px,然后淡出并消失。
2) 单击 HTML 页面上或 div 内的任意位置会导致页面上出现一个可能为 3px 的点,并且(第二个圆圈?)从仅具有轮廓的点开始扩大,扩展为 5px.. .淡出并消失......一遍又一遍。 (点保持原位,只是继续“脉动”的动画圆圈
寻找最佳解决方案可以是 CSS3、Javascript(有或没有任何库)或 HTML5。
有趣的想法。经过一些摆弄后,这是我所做的方法
1) 使用 javascript 在点击位置附加一个新元素和我想出的一些 CSS 动画 this demo
对应的CSS动画:
@keyframes grow {
0% {
width: 5px;
height: 5px;
margin-top: -2.5px;
margin-left: -2.5px;
}
50% {
margin-top:-7.5px;
margin-left: -7.5px;
width: 15px;
height: 15px;
opacity: 1;
}
100% {
margin-top:-12.5px;
margin-left: -12.5px;
width: 25px;
height: 25px;
opacity: 0;
}
}
2) 我无法在 Google map 上重现你对这个的意思,但根据你的描述我想出了 this demo
对应的CSS动画:
@keyframes pulse {
0% {
width: 5px;
height: 5px;
margin-top: -4.5px;
margin-left: -4.5px;
}
100% {
margin-top:-14.5px;
margin-left: -14.5px;
width: 25px;
height: 25px;
}
}
这些方法适用于任何支持 CSS3 动画的浏览器,可以找到列表 here .后备类似的解决方案是使用相同的方法,但使用 jQuery 的 .animate
或类似的东西来代替
如果不支持动画,第一个只是一个 5px x 5px 的圆圈,一秒钟后删除。第二个是一个黑点,一直持续到再次单击文档为止。
旁注:在目前的状态下,我认为它无法在 IE 中运行,因为它不支持 document.getElementsByClassName