Dan*_*cio 2 jquery animation callback
我只是从jQuery和web开发开始,所以,请原谅任何天真的错误.我正在尝试使用一个导致动画发生的按钮.也就是说,这个动画只是从左到右移动一个'h2'标题,然后再移回(并且平凡地改变颜色).
我使用以下代码时遇到的问题是,如果用户多次单击该按钮,则会导致按钮继续通过转向点.我了解到这是一个异步问题,并尝试在动画调用中使用回调函数来重新启用按钮功能.
如您所见,我通过设置queue:false变量解决了这个问题.由于我还是新手,有没有一种简单的方法可以做到这一点?
谢谢你的帮助!
var toTheRight = true;
$('#animation').click(function () {
var header = $('h2')[0].style.left.toString();
var headerNum;
if (header.length < 5) {
headerNum = 0;
}
else {
headerNum = +(header.substring(0, header.length - 2));
}
if (headerNum >= 450) {
toTheRight = false;
$('h2').css("background-color", "green");
}
if (headerNum < 100) {
toTheRight = true;
$('h2').css("background-color", "orange");
}
var modified;
var stringified;
if (toTheRight) {
modified = Math.round((headerNum + 100) / 100) * 100;
strigified = modified + "px";
$('h2').animate({
"font-size": "3em",
"width": "50%",
"left": stringified
}, { queue: false, duration: 1000 });
}
else {
modified = Math.round((headerNum - 100) / 100) * 100;
stringified = modified + "px";
$('h2').animate({
"font-size": "3em",
"width": "50%",
"left": stringified
}, { queue: false, duration: 1000 });
}
});
Run Code Online (Sandbox Code Playgroud)
你可以把你的函数包装成if:
$('#animation').click(function () {
if(!$('h2').is(':animated')){
//your function
}
})
Run Code Online (Sandbox Code Playgroud)
编辑:
正如烤所说,你可以这样做:
$('#animation').click(function () {
if($('h2').is(':animated')) return;
//your function
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |