使用天地图动态加载波纹动画

 

.circle-marker-content {
  // display: none;
  position: relative;
  top: 50%;
  left: 50%;
  height: 1.8vh;
  width: 1.8vh;
  transform: translate(-50%, -50%);
  border-radius: 100%;
  text-align: center;
  background: #ff2511;
  border: 1px solid #f32310;
  box-shadow: 0px 0px 14px #ff1c07;
  z-index: 1000;

  .item_count {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #ff1109;
    font-weight: bold;
    font-size: 13px;
    z-index: 10;
  }

  @keyframes scaless {
    0% {
      transform: scale(0);
      opacity: 1;
    }

    100% {
      transform: scale(2);
      opacity: 0;
    }
  }

  .item {
    width: 100%;
    height: 100%;
    position: absolute;
    border-radius: 100%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: 4vh;
    width: 4vh;
  }

  .item:before {
    content: "";
    position: absolute;
    left: -1px;
    top: -1px;
    display: inline-block;
    width: 100%;
    height: 100%;
    border: 1px solid #fc0000;
    border-radius: 100%;
    opacity: 0;
    background-color: #ff0000;
    animation: scaless 5s infinite cubic-bezier(0, 0, 0.49, 1.02);
  }

  .item1:before {
    animation-delay: 0s;
  }

  .item2:before {
    animation-delay: 1s;
  }

  .item3:before {
    animation-delay: 2s;
  }

  .item4:before {
    animation-delay: 3s;
  }

  .item5::before {
    animation-delay: 4s;
  }
}

动态效果用div+css实现


    setDraw(data) {
        var zoom = 15
        var point = new T.LngLat(this.lng * 1 || 116.40769, this.lat * 1 || 39.89945)
        console.log(this.lng, this.lat)
        TMap.centerAndZoom(point, zoom)
        if (data && data.length > 0) {
          data.forEach((item) => {
            this.addPoint(item)
          })
        }
      // })
    },
    // 添加自定义动画点位
    addPoint(item) {  
      const that = this;
      // 添加点击效果
      var definedOverlay = T.Overlay.extend({
        initialize: function (lnglat) {
          this.lnglat = lnglat;
        },
        onAdd: function () {
          var div = this._div = document.createElement("div");
          div.classList.add('circle-marker-content');
          var div1 = this._div1 = document.createElement("div");
          div1.classList.add('item'); div1.classList.add('item1');
          div.appendChild(div1);
          var div2 = this._div2 = document.createElement("div");
          div2.classList.add('item'); div2.classList.add('item2');
          div.appendChild(div2);
          var div3 = this._div3 = document.createElement("div");
          div3.classList.add('item'); div3.classList.add('item3');
          div.appendChild(div3);
          var div4 = this._div4 = document.createElement("div");
          div4.classList.add('item'); div4.classList.add('item4');
          div.appendChild(div4);
          var div5 = this._div5 = document.createElement("div");
          div5.classList.add('item'); div5.classList.add('item5');
          div.appendChild(div5);
          TMap.getPanes().overlayPane.appendChild(this._div);
          this.update(this.lnglat);
        },
        update: function () {
          var pos = TMap.lngLatToLayerPoint(this.lnglat);
          this._div.style.top = (pos.y - 36) + "px";
          this._div.style.left = (pos.x - 11) + "px";

        }
      });
       // 添加标注/覆盖物
      var point = new T.LngLat(item.longitude, item.latitude);
      console.log(item.longitude, item.latitude)
      const pdefinedOverlay = new definedOverlay(point);
      TMap.addOverLay(pdefinedOverlay);

    },

注意:在style部分不要用scoped否则会没有效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue.js是一种流行的JavaScript框架,用于构建用户界面。如果想要在Vue中使用百度地图来高亮显示水波纹效果,可以按照以下步骤进行操作。 首先,需要在项目中引入百度地图的JavaScript API。可以通过在index.html文件中添加一个script标签来完成这一步骤。 接下来,在Vue组件中创建一个用于显示地图的容器。可以使用一个div元素,并为其分配一个唯一的id。 然后,在组件的mounted生命周期钩子函数中,可以使用百度地图API的方法来创建地图对象,并将其显示在之前创建的容器中。可以使用id选择器来选中容器,并调用百度地图的构造函数来创建地图对象。 接着,可以使用百度地图API的方法来创建一个圆形的标记,表示水波纹。可以通过设置圆形的半径、颜色和透明度等属性来调整水波纹的显示效果。 最后,在适当的时机(例如用户点击按钮或触发其他事件时),可以使用百度地图API的方法来更新圆形标记的位置,以及显示和隐藏水波纹效果。 需要记住的是,在使用百度地图API的过程中,可能需要创建一个百度地图开发者账号,并获取到相应的密钥。密钥可以用于在请求中验证身份,并获得对API的访问权限。 总结起来,使用Vue.js和百度地图API可以实现在Vue项目中展示水波纹效果的功能。遵循上述步骤,可以轻松地在Vue组件中创建和控制水波纹的显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值