2

我有一个绝对的 div 在屏幕上移动。当 div 退出屏幕时,我重置了值,这是代码:

    setInterval( function() {
        if( p2.offset().top <= 1 ) {
             p2.css('bottom','50').css('left','400');
        }
        p2.css('bottom', '+=1').css('left', '+=1');
    }, 10 );

当我在 if 条件下发出警报时,我看到了这个警报,但代码p2.css('bottom','50').css('left','400')似乎没有执行...... div 继续在屏幕外移动,而不会在bottom: 50pxand处重置left: 400px

我哪里错了?

4

3 回答 3

5

指定你的单位,它会工作:

p2.css('bottom','50px').css('left','400px');

或者,将对象传递给css()方法:

p2.css({bottom:50, left:400});

这假设您正在谈论像素。

JSFiddle

于 2013-07-17T08:06:21.403 回答
1

更改 css 时必须指定单位:

p2.css('bottom','50px').css('left','400px');

编辑

抱歉,我不知道,但是您可以照常使用+=1

另外,您不能+=在 css 的 jQuery 属性中使用运算符。

你宁愿这样做:

var newBottom = (parseInt(p2.css('bottom')) + 1) + "px";
var newLeft = (parseInt(p2.css('left')) + 1) + "px";

p2.css('bottom', ).css('left', '+=1');

于 2013-07-17T08:02:01.520 回答
-2

是的,它只是被覆盖了......

setInterval( function() {
        if( p2.offset().top <= 1 ) {
             p2.css('bottom','50').css('left','400');
        }else{
             p2.css('bottom', '+=1').css('left', '+=1');
        }
    }, 10 );
于 2013-07-17T07:59:19.933 回答