我对动态生成的网页和JQuery项目的个人学习项目的第一个实现是使用复选框和toggle(“ slow”)和toggle(“ fast”)。但是,对于CS来说,这是新手,所以对我的第一个项目来说,管理复选框的状态变得有点复杂。所以我只用<label>
切换到.on('click', function(){...})
和$('*').click(function(){...})
和.toggleClass('hidden')
来处理我的用户体验。隐藏类的CSS是:
.hidden {
display: none;
}
现在的问题是类的切换是瞬时发生的,我希望用户能够像
.toggle()
或.toggle('slow')
一样看到.toggle('fast')
。我将如何转换以下行以实现此视觉反馈?$(this).toggleClass('hidden');
我已经查看了toggle,toggleClass和slideToggle的API,并好奇是否可以使用某种组合。如果我必须将其重写为toggle(),我该如何包含showOrHide参数以及“ show”或“ fast”持续时间,因为我需要验证当前状态,类似于
.toggleClass()
的[switch]参数。 最佳答案
您无法为添加或删除类设置动画效果-类是否存在。 .toggle('fast')
效果是通过在隐藏元素之前对元素的特定CSS属性进行动画处理来产生的。
“如果我必须将其重写为toggle()
,那么我需要如何包含showOrHide
参数以及“显示”或“快速”持续时间,因为我需要验证当前状态,类似于.toggleClass()'s [switch]
参数。”
由于当前没有这样的.toggle()
版本:
$(this).toggle('fast', showOrHide)
...您可以改为执行以下操作:
$(this)[showOrHide ? "show" : "hide"]('fast');
...这是一种简短的说法:
if (showOrHide)
$(this).show('fast');
else
$(this).hide('fast');
如果要在显示/隐藏完成时运行回调函数,则:
$(this)[showOrHide ? "show" : "hide"]('fast', function() { ... });
关于javascript - 使用动画将toggleClass('hidden')转换为.toggle(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11642979/