javascript - .使用曲线制作动画

标签 javascript jquery html jquery-animate curve

先来看看:

enter image description here

猫需要沿着曲线移动到x。 (见箭头)

当猫击中 x 时,它应该停留 10 秒,然后猫应该回到 o,再次弯曲,并重复。

我用这段代码试过了:

function curve() {
    $('#cat').delay(10000).animate({top: '-=20',left: '-=20'}, 500, function() {
        $('#cat').delay(10000).animate({top: '+=20', left: '+=20'}, 500, function() {
            curve();
        });
    });
}

curve();

但是猫是这样移动的:

enter image description here

有没有办法让猫在这种曲线中移动?

最佳答案

您可以使用缓动来实现这一点,通过进行复合运动:

function curve () {
    $('#cat').delay(10000).animate({top: "+=20px", left: "+=20px"}, {
      duration: 500, 
      specialEasing: {top: 'easeOutQuad', left: 'easeInQuad'}, 
      complete: function () { 
        $('#cat').animate({top: "-=20px", left: "+=20px"}, {
          duration: 500, 
          specialEasing: {top: 'easeInQuad', left: 'easeOutQuad'},
          complete: function() {
            // repeat the other way around.
          }});
      }
    });
}

根据 jQuery docs,它从 jQuery 1.4 开始工作并且提到的缓动需要 jQuery UI(但只有 Effect Core 模块)。每个 .animate() 调用占整个圆路径的四分之一,而反向 easeInQuadeaseOutQuad 使路径看起来像循环路径而不是直接到新位置。

关于javascript - .使用曲线制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8233606/

相关文章:

html - 为什么标签不使用整个形式

javascript - 差异,当可观察变量在 mobx 中的 Action 方法和普通函数内更新时?

javascript - 即使函数不返回任何内容,onBeforeUnload 也会创建提示

javascript - jQuery:从 div 元素获取值将它们附加到输入以提交

javascript - Knockout.js:If 和 foreach 绑定(bind),检查可观察数组上的真值

javascript - 使用appendChild()将文本放入svg内

javascript - 如何从 txt_Answer 类的所有文本框中获取所有文本

javascript - 在 node.js child_process.exec 上显示进度?

javascript - 获取自动完成中元素的 ID

jquery - 当我将一个元素拖到另一个div时,图标被div覆盖了,为什么?查询界面