【问题标题】:Anyway to start animate smoothly?无论如何要顺利开始动画?
【发布时间】:2014-04-19 20:46:21
【问题描述】:

所以,我不想使用插件,而是只想制作一个基本的选框。很公平。很容易。工作得体。唯一让我烦恼的是动画开始有点慢然后加速的方式。无论如何可以从动画功能中获得稳定的速度吗?随着一开始的减速,它不是很流畅。

var marquee = $('#marquee'),
    marqueeText = marquee.find('span:first'),
    marqPos = marquee.position(),
    marqTextPos = marqueeText.position(),

    runMarquee = setTimeout(startMarquee, 1000);

function startMarquee() {
    marqueeText.css('left', (marqPos.left - marqueeText.width() - 8)).animate({
        'left': (marqPos.left + marquee.width() + marqueeText.width() + 8)
    }, {
        duration: 5000,
        complete: function () {
            startMarquee();
        }
    });
}

更新

正如 adeneo 在下面指出的,将easing 添加到我的动画中并设置linear 进行线性运动将解决这个问题。我也不需要超时,因为它已经是一个循环。请参阅更新的小提琴。

JSFiddle Demo

【问题讨论】:

    标签: jquery html jquery-animate


    【解决方案1】:

    添加线性缓动(默认为swing

    easing: 'linear'
    

    FIDDLE

    【讨论】:

    • 哦,那好吧。 :) 谢谢adeno,尽快接受。刚刚意识到我也不需要超时。呃。已经是循环了。
    • 嘿@adeneo 你会说这是制作纯jQuery选取框的最简单方法吗?
    • 可能有一些方法可以编写更短的代码,但现在看起来还不错。
    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    相关资源
    最近更新 更多