图资源

map.png

image.png

  • 根据图片大小来定.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%),定到圆点的中央
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. body {
  10. background-color: #333;
  11. }
  12. .map {
  13. position: relative;
  14. width: 747px;
  15. height: 617px;
  16. margin: auto;
  17. background: url(media/map.png) no-repeat;
  18. }
  19. .city {
  20. position: absolute;
  21. top: 228px;
  22. right: 192px;
  23. }
  24. .dotted {
  25. width: 8px;
  26. height: 8px;
  27. background-color: #09f;
  28. border-radius: 50%;
  29. }
  30. .city div[class^="pulse"] {
  31. position: absolute;
  32. top: 50%;
  33. left: 50%;
  34. transform: translate(-50%, -50%);
  35. /* 以上是为了子在父中央 */
  36. width: 8px;
  37. height: 8px;
  38. box-shadow: 0 0 12px #009dfd;
  39. border-radius: 50%;
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <div class="map">
  45. <div class="city">
  46. <div class="dotted"></div>
  47. <div class="pulse1"></div>
  48. <div class="pulse2"></div>
  49. <div class="pulse3"></div>
  50. </div>
  51. </div>
  52. </body>
  53. </html>

image.png

  • 定义动画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>

```