【发布时间】:2011-09-06 21:27:25
【问题描述】:
我对 js 比较陌生,我正在尝试在我的投资组合中实现一个简单的 .animate() 功能。正如你所看到的here,我编写的名为ribbon 的div 的代码完美地向下滑动,但它似乎忽略了脚本的“else”部分。
我知道我可能犯了一个愚蠢的错误,但我目前似乎无法解决任何问题!
对不起,我的英语不好,意大利人太糟糕了。
【问题讨论】:
标签: jquery html jquery-animate slide
我对 js 比较陌生,我正在尝试在我的投资组合中实现一个简单的 .animate() 功能。正如你所看到的here,我编写的名为ribbon 的div 的代码完美地向下滑动,但它似乎忽略了脚本的“else”部分。
我知道我可能犯了一个愚蠢的错误,但我目前似乎无法解决任何问题!
对不起,我的英语不好,意大利人太糟糕了。
【问题讨论】:
标签: jquery html jquery-animate slide
刚刚在一分钟前为另一个这样的人想出了一个解决方案。
基本上,您将值乘以 1 或 -1,然后切换该值。
$(document).ready(function() {
var direction = -1;
$('#toggle').click(function() {
direction -= direction * 2;
$('#ribbon').animate({
marginTop: "+=" + direction * 300 + "px"
}, 1700);
return false;
});
});
或者更好:http://jsfiddle.net/HF5A5/1/
$(document).ready(function() {
var direction = 1;
$('#toggle').click(function() {
$('#ribbon').animate({
marginTop: "+=" + direction * 300 + "px"
}, 1700, function(){
$(this).stop();
direction -= direction * 2;
});
return false;
});
});
【讨论】:
只要拿走你所拥有的,只需将if 放入click 事件中。
$(document).ready(function() {
$('#toggle').click(function() {
if ($('#ribbon').css("margin-top") == "-300px") {
$('#ribbon').animate({
marginTop: "0px"
}, 1700);
} else {
$('#ribbon').animate({
marginTop: "-300px"
}, 1700);
}
});
});
【讨论】:
$('#ribbon').stop().animate({...