帮助这个动画循环

发布于 2024-11-28 06:37:04 字数 708 浏览 2 评论 0原文

t.grow = function(parent,evt) { 
evt.target.Y = 0
var r = parent.radius, that = this
this.loop = function() {
    parent.root.suspendRedraw(10000)
    evt.target.Y = evt.target.Y - 6
    evt.target.setAttribute('transform', 
              'translate(' + 0 + ',' + evt.target.Y + ')')
    r = r + 0.1
    evt.target.setAttribute('r',r)
    parent.root.unsuspendRedrawAll()
     if(evt.target.Y < parent.timeout) {
        clearInterval(that.timer)
     }
}
that.timer = window.setInterval(this.loop,30) 
}
this.el.addEventListener("mouseover",
function(event){ 
    t.grow(parent,event)
},
true) 

我真的需要一些有关上述动画的帮助。

目前,动画是在鼠标悬停在对象上时触发的,但我真正想要实现的是动画在事件上触发,我希望它在随机时间触发

t.grow = function(parent,evt) { 
evt.target.Y = 0
var r = parent.radius, that = this
this.loop = function() {
    parent.root.suspendRedraw(10000)
    evt.target.Y = evt.target.Y - 6
    evt.target.setAttribute('transform', 
              'translate(' + 0 + ',' + evt.target.Y + ')')
    r = r + 0.1
    evt.target.setAttribute('r',r)
    parent.root.unsuspendRedrawAll()
     if(evt.target.Y < parent.timeout) {
        clearInterval(that.timer)
     }
}
that.timer = window.setInterval(this.loop,30) 
}
this.el.addEventListener("mouseover",
function(event){ 
    t.grow(parent,event)
},
true) 

I really need some help with the above animation.

At the moment the animation is triggered on a mouseover of the object, but what I would really like to achieve is rather than the animation being triggered on an event I would like it to fire at a random time

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

可爱暴击 2024-12-05 06:37:04
function start(){
  grow()//You will need to pass in whatever element you want this to act on.
  setTimeout(function(){start()},(Math.floor(Math.random()*10)+5)*1000);
}

基本上,第二行创建一个 0 到 10 之间的随机数,然后加 5,这样就不会出现两个背靠背运行的动画。

function start(){
  grow()//You will need to pass in whatever element you want this to act on.
  setTimeout(function(){start()},(Math.floor(Math.random()*10)+5)*1000);
}

Basically the second line creates a random number between 0 and 10 then it adds 5 so that you won't have two animations running back to back.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文