我试图用JS创建简单的点击游戏,我想给我的游戏一些动画。 一点" $ + 1"每当我点击按钮时,应该动画到顶部并消失。它可以工作,但只需点击一下。
$("#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"
});
});

<button id="clicker" onclick="click_f()">Click!</button>
<center><span id="fading_dolar">+$1</span></center>
&#13;
答案 0 :(得分:1)
尝试在css
bottom
的{{1}}重置#fading_dolar
0px
complete
至.animate()
$("#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")
}
});
});
&#13;
#fading_dolar {
display: block;
position: relative;
bottom: 0px;
}
&#13;
<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>
&#13;
答案 1 :(得分:0)
您之后的效果不是很清楚,但您的代码段中有一些错误:
尝试这个固定小提琴
$("#clicker").click(function(){
$("#fading_dolar").css({
bottom: "0px",
opacity: 1
}); $("#fading_dolar").animate({
bottom: "120px",
opacity: 0
}, {duration:1000, queue: false});
});
&#13;
#fading_dolar {
display: block;
position: relative;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="clicker">Click!</button>
<center><span id="fading_dolar">+$1</span></center>
&#13;
编辑:还有其他一些错误/错误。 "bottom:":
是错误的,你应该重新开始#34;从0px,而不是60px。还将基本样式移动到CSS(不需要代码),并添加了所需的&#34;位置:relative&#34;属性。
答案 2 :(得分:0)
你需要把:
$("#fading_dolar").css({
"opacity": "1",
"bottom:": "60px"
});
在complete
选项中,因为这是一个动画完成后调用的函数。请参阅有关animate的jQuery文档。
您的代码应为:
$("#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"
});
}});
});
答案 3 :(得分:0)
您应该使用回调函数和.stop()
而不是queue: false
:
$("#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"
});
});
});