+ -
当前位置:首页 → 问答吧 → [已解决]用animate怎样实现绝对位移动画?

[已解决]用animate怎样实现绝对位移动画?

时间:2010-02-23

来源:互联网

用下面的可以实现相对位移一次,但再次点button,div就没有反映了:
<script language="javascript">
function testtop(){      
    $(".block2").animate({marginTop:'-50px'},"slow");
}
</script>
<input type="button" id="top" value="top" onclick="testtop()">
<div class="block2">6</div>
我想实现每点一次button, div就向上移动一次,怎样可以实现啊? 3ks!
[ 此帖被west在2010-02-25 09:45重新编辑 ]

作者: west   发布时间: 2010-02-23

取marginTop值,减50.

作者: 抒寒   发布时间: 2010-02-23

奇怪啊,如果不使用jquery,就可以实现改变marginTop:
var i;
i=1;
function testtop(){
  var num = 30*i;
  document.getElementById("block2").style.marginTop="+"+num+"px";
  i+=1;  
}
如果用jquery,则在点了一次后就会有问题:
var length,i;
i=1;

function testtop(){
       length ='-'+50*i+'px';    
        $(".block2").animate({marginTop:length},"slow");
    i+=1;    
    }
有人碰到过类似问题吗???

作者: west   发布时间: 2010-02-24

你自己写的有问题撒,你少个等号
复制代码
  1. function testtop(){      
  2.     $(".block2").animate({marginTop:'-=50px'},"slow");
  3. }

作者: ywqbestever   发布时间: 2010-02-24

引用
引用第3楼ywqbestever于2010-02-24 23:22发表的  :
你自己写的有问题撒,你少个等号
[code]
function testtop(){      
    $(".block2").animate({marginTop:'-=50px'},"slow");
}
.......

老大,这样一样还是不行,只能点一次.

作者: west   发布时间: 2010-02-25

3楼的,你是对的,只不过如果当DOM对象的marginTop移动到了页面顶部,就不能动了,刚才突然试了下把我的 -=50px 改成+=50px, 就可以了.因为我的对象已经移动到了页面顶部,所以点第2次会没反映.
多谢上面的2位朋友.

作者: west   发布时间: 2010-02-25

  4楼的是个高手!!!

作者: wudao2006   发布时间: 2010-04-16

相关阅读 更多