Jquery animate + if css position

Posted

技术标签:

【中文标题】Jquery animate + if css position【英文标题】: 【发布时间】:2013-06-01 05:50:08 【问题描述】:

我实际上是在尝试使用 jquery animate 函数检查我正在移动的 div 元素的顶部位置。

$('#nss .nss-pager-up').click(function() 
    $('.nss-stream-inner-wrap').animate(
        top: '+=55'
    , 300, function() 
        if($('.nss-stream-inner-wrap').css('top') == '55') 
            alert('hey');
        
 );
);

有人知道为什么这不起作用?

【问题讨论】:

你检查过css属性top的值吗?它可能是“55px”。 【参考方案1】:

返回值包含单位,像素:

if ( $('.nss-stream-inner-wrap').css('top') == '55px' ) 

http://jsfiddle.net/cY5vw/

【讨论】:

【参考方案2】:

可能是“顶部”样式尚未设置。

我会选择以下方式

$('#nss .nss-pager-up').click(function() 
    $('.nss-stream-inner-wrap').animate(
        top: $(this).position().top + 55
 , 300, function() 
        if($('.nss-stream-inner-wrap').css('top') == '55') 
            alert('hey');
        
 );
);

【讨论】:

【参考方案3】:

使用位置()

http://jsfiddle.net/ySYWB/1/

$('#nss .nss-pager-up').click(function() 
    $('.nss-stream-inner-wrap').animate(
        top: '+=50'
    , 300, function() 
    if($('.nss-stream-inner-wrap').position().top > 55) 
        alert('hey');
    
  );
);

【讨论】:

> 通常更安全,但你可以坚持 ==

以上是关于Jquery animate + if css position的主要内容,如果未能解决你的问题,请参考以下文章

关于JQuery animate()方法

jquery css()和animate()的异同

jquery的animate怎么获取动画的CSS属性呢?

jQuery + Animate.css 动画只工作一次,动画不重置

jQuery Toggle 不显示和 animate.css 类

一个简单、高性能和跨浏览器的jQuery旋转/转盘插件,用于由Animate.css提供支持的文本短语。