使用 slideToggle 停止动画
Stop animation using slideToggle
我有一个按钮 <button class="foo">Foo</button>
,它附有事件处理程序,使用 .slideToggle()
展开或折叠块
$('.foo').on('click', function () {
const fooBlock = $(this).next();
fooBlock.slideToggle(() => {
fooBlock.toggleClass('hidden');
});
如果用户在动画转换时单击按钮,则单击会排队。如果用户在动画已经执行时单击按钮,我该如何停止动画?
更好的解决方案是仅使用 stop(true)
清除连续点击队列。这意味着 UI 在动画期间仍然响应用户输入并且还可以防止动画建立。试试这个:
$('.foo').on('click', function() {
const fooBlock = $(this).next();
fooBlock.stop(true).slideToggle(() => {
fooBlock.toggleClass('hidden');
});
});
我有一个按钮 <button class="foo">Foo</button>
,它附有事件处理程序,使用 .slideToggle()
$('.foo').on('click', function () {
const fooBlock = $(this).next();
fooBlock.slideToggle(() => {
fooBlock.toggleClass('hidden');
});
如果用户在动画转换时单击按钮,则单击会排队。如果用户在动画已经执行时单击按钮,我该如何停止动画?
更好的解决方案是仅使用 stop(true)
清除连续点击队列。这意味着 UI 在动画期间仍然响应用户输入并且还可以防止动画建立。试试这个:
$('.foo').on('click', function() {
const fooBlock = $(this).next();
fooBlock.stop(true).slideToggle(() => {
fooBlock.toggleClass('hidden');
});
});