为了账号安全,请及时绑定邮箱和手机立即绑定

IE/Edge 上的 SVG 脉冲动画

IE/Edge 上的 SVG 脉冲动画

守着星空守着你 2024-01-11 14:05:36
我在 svg 圆上有脉冲动画,但transform: scale圆在 IE/Edge 上不起作用。在其他浏览器上运行良好。有没有什么方法可以在不使用 jquery 插件的情况下解决这个问题?  .cls-1, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8 {    transform: scale(0,0);    -ms-transform: scale(0,0);    -webkit-transform: scale(0,0);    -moz-transform: scale(0,0);    -o-transform:scale(0,0);    opacity: 0;    transform-box: fill-box;    transform-origin: 50% 50%;    animation: pulse 2s infinite cubic-bezier(.5,.5,0,1);  }@keyframes pulse {    25% {        opacity: 0.4;    }    100% {        transform: scale(1);        -ms-transform: scale(1);        -webkit-transform: scale(1);        -moz-transform: scale(1);        -o-transform:scale(1);    }}代码笔: https: //codepen.io/burianovata/pen/oNjxqom
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

解决方案是使用 JQuery 更改圆半径。在所有浏览器上的工作方式相同,不需要额外的插件。我还尝试了 GSAP3 - 存在变换原点问题,以及 Snap.svg - 尽管它也会影响半径属性,但它在 IE/Edge 上不起作用。示例位于上面列出的 Codepen 链接上。

//Change radius to zero

function scale() {

  if($('.map-circle').length) {

    $('.map-circle')

      .animate(

      {'radius': 0},

      {

        step: function (radius) {

          $(this).attr('r', radius);

        },

        duration: 800

      }

    );

  }

}


//Change radius to initial size - 35.5

function pulse() {

  if($('.map-circle').length) {

    $('.map-circle')

      .animate(

      {'radius': 35.5},

      {

        step: function (radius) {

          $(this).attr('r', radius);

        },

        duration: 1200

      }

    );

  }


}


// Infinite animation

function animation() {

  setInterval(

    function () {

      pulse();

      scale();

    }, 1000);

}


animation();


查看完整回答
反对 回复 2024-01-11
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信