如何在onclick停止jquery动画?

时间:2012-12-11 19:15:44

标签: javascript jquery

我是jquery的新手,我不太了解它,但我需要它,因为我正在构建一个模板......这是情况,我有一个div,我想滑入页面(当我点击链接时,当我点击页面上任何其他地方滑出时...来自外部,顶部)...这就是我所拥有的:

var tmpl_name = '<?php echo $this->template ?>';
jQuery(document).ready(function() {

  jQuery('#link').click(function() {
    var topy = jQuery('#div');
      topy.delay(0).animate({
      top: parseInt(topy.css('top')) == 0 ? -topy.outerWidth() : 10
    },500, 'easeInOutCirc', function() {jQuery(this);});
  });

});

...并且它运行良好,当我点击链接div滑入页面,但我不知道如何实现当我点击页面上的任何其他地方滑出div时,我试图添加:

jQuery('body').click(function() {
    var topy = jQuery('#div');
      topy.delay(0).animate({
      top: parseInt(topy.css('top')) == 0 ? -topy.outerWidth() : -500
    },1000, 'easeInOutCirc', function() {jQuery(this);});
  });

...但问题是当我点击链接滑动div时,div进出页面(可能是因为链接也在正文中,这个代码的第二部分也会影响它。

感谢您的时间......最好的问候

2 个答案:

答案 0 :(得分:2)

尝试:

jQuery(document).ready(function() {

  jQuery('#link').click(function(e) {
    e.preventDefault();
    var topy = jQuery('#div');
      topy.delay(0).animate({
      top: parseInt(topy.css('top')) == 0 ? -topy.outerWidth() : 10
    },500, 'easeInOutCirc', function() {jQuery(this);});
  });

});

要杀死事件传播到文档对象

答案 1 :(得分:0)

.stop()功能可以在通话开始时链接,也可以在结束时链接以停止任何动画。

即。 $("#element").stop().bounce().stop();