图资源
上

- 根据图片大小来定.map盒子大小
- .map 要居中显示
- 图片是透明的,需要在定义body的背景颜色,颜色用#333吧
- 在.map里弄个.city盒子,盒子内容先写个1
- .city盒子用定位,再用chrome调试,把1定到北京,复制一下top,和right,替换代码里的top和right
- 删掉1,在.city盒子里,写四个盒子,一个是中心点.dotted盒子,其他三个是pulse1,2,3盒子
- .dotted设置宽高,并用border-radius变圆,再用chrome调试.city盒子,让圆点定到北京,复制替换掉代码里的
- 用属性选择器.city div[class^=”pulse”],宽高和.dotted一样就好,设置阴影box-shadow,用绝对定位加transform:translate(-50%,-50%),定到圆点的中央
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body {background-color: #333;}.map {position: relative;width: 747px;height: 617px;margin: auto;background: url(media/map.png) no-repeat;}.city {position: absolute;top: 228px;right: 192px;}.dotted {width: 8px;height: 8px;background-color: #09f;border-radius: 50%;}.city div[class^="pulse"] {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);/* 以上是为了子在父中央 */width: 8px;height: 8px;box-shadow: 0 0 12px #009dfd;border-radius: 50%;}</style></head><body><div class="map"><div class="city"><div class="dotted"></div><div class="pulse1"></div><div class="pulse2"></div><div class="pulse3"></div></div></div></body></html>
下

- 定义动画pulse,0%空,70%设置width,height,opacity为1,100%设置width,height,opacity为0.
- 给.city div[class^=”pulse”] 用下动画 animation: pulse 1.8s linear infinite;
- 一共用时1.8s,用速度曲线用 linear 匀速,infinite 无限,一直循环下去
- 这样还不行,这样三个pulse都叠在一块了,得用延迟来把它们分开
- .city div.pulse2 { animation-delay: .6s; } .city div.pulse3 { animation-delay: 1.2s; } 这里得注意权重的问题,权重比.city div[class^=”pulse”]小的话,就没用了。 ```html <!DOCTYPE html>
```
