首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jquery中每次单击就启动新的动画

在jquery中每次单击就启动新的动画
EN

Stack Overflow用户
提问于 2015-07-12 20:50:01
回答 3查看 433关注 0票数 2

我试图创建简单的点击游戏与JS,我想给我的游戏一些动画。一个小的"$+1“应该动画到顶部,并淡出每次我点击按钮。它可以工作,但只适用于一次点击。

代码语言:javascript
复制
$("#clicker").click(function(){
	$("#fading_dolar").css("display","block");
	$("#fading_dolar").animate({
		bottom: "120px",
		opacity: 0
	}, {duration:1000, queue: false});

	$("#fading_dolar").css({
		"opacity": "1",
		"bottom:": "60px"
	});


});
代码语言:javascript
复制
<button id="clicker" onclick="click_f()">Click!</button>
	<center><span id="fading_dolar">+$1</span></center>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-12 21:03:53

尝试将css bottom of #fading_dolar重置为0px at complete of .animate()

代码语言:javascript
复制
$("#clicker").click(function() {
  var el = $("#fading_dolar");
  el.finish().css("opacity", 1).animate({
    bottom: "120px",
    opacity: 0
  }, {
    duration: 1000,
    queue: false,
    complete:function() {
      $(this).css("bottom", "0px")
    }
  });


});
代码语言:javascript
复制
#fading_dolar {
  display: block;
  position: relative;
  bottom: 0px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="clicker">Click!</button>
<center><span id="fading_dolar">+$1</span>
</center>

票数 1
EN

Stack Overflow用户

发布于 2015-07-12 21:02:14

你需要把:

代码语言:javascript
复制
$("#fading_dolar").css({
    "opacity": "1",
    "bottom:": "60px"
});

complete选项中,因为这是动画完成后要调用的函数。参见关于jQuery 动画制作的文档。

您的代码应该是:

代码语言:javascript
复制
$("#clicker").click(function(){
    $("#fading_dolar").css("display","block");
    $("#fading_dolar").animate({
        bottom: "120px",
        opacity: 0
    }, {duration:1000, queue: false, complete: function(){
        $("#fading_dolar").css({
            "opacity": "1",
            "bottom:": "60px"
        });
    }});
});

演示

票数 0
EN

Stack Overflow用户

发布于 2015-07-12 21:02:53

您应该使用回调函数和.stop()而不是queue: false

代码语言:javascript
复制
$("#clicker").click(function(){
    $("#fading_dolar").css("display","block");
    $("#fading_dolar").stop().animate({
        bottom: "120px",
        opacity: 0
    }, 1000, function() {
      $("#fading_dolar").css({
          "opacity": "1",
          "bottom:": "60px"
      });
    });   
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31372441

复制
相关文章

相似问题

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