首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止.animate()

停止.animate()
EN

Stack Overflow用户
提问于 2013-01-31 05:11:57
回答 4查看 1.3K关注 0票数 1

我正在尝试使它在3072px的按钮停止向右移动img。我想我需要在我的动画按钮里放一个if语句。是那么回事吗?

代码语言:javascript
复制
$(document).ready( function() {
    $('a.click').click(function() {
        $('img').animate({right : '+=1024'} , 'slow' );
    });
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-31 05:28:07

代码语言:javascript
复制
$(document).ready(function () {
    var $a = $('a.click');
    $a.on('click', function () {
        $('img').animate({
            right: '+=1024'
        }, {
            step: function (now, fx) {
                if (now >= 3072) {
                    $(fx.elem).stop();
                    // $a.off('click');
                }
            }
        });
    });
});

http://jsfiddle.net/82mWF/

票数 2
EN

Stack Overflow用户

发布于 2013-01-31 05:24:39

使用step选项可以提供强大的动画控制:

代码语言:javascript
复制
$('a.click').click(function()
{
    var $img = $('img');
    $img.animate({right: '+=1024'},
    {
       duration:'slow',
       step:function() { if ($img.offset().left + $img.width() >= 3072) $(this).stop(); }
    }
});

您可以将此方法扩展到检查窗口的边界,或检查另一个元素的边界,或检查动画正在进行时可能发生更改的值。

票数 1
EN

Stack Overflow用户

发布于 2013-01-31 05:15:30

如果我没弄错你的问题,像这样的东西应该是可以的。

代码语言:javascript
复制
$('a.click').click(function() {
    var $img = $('img');
    if ($img.css('right') <= (3072 - 1024)) {
        $img.animate({right : '+=1024'} , 'slow' );
    }
});

.css('right')用于获取right CSS属性的计算值。此外,$img还用于缓存jQuery对象,以避免两次查询DOM

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14613868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档