我有一组单选按钮,单击它们时会触发一个隐藏该组并显示下一个的动画。我遇到的问题是动画在用户看到选择之前运行,这可能会造成混淆。所以,我想等待屏幕重新绘制选择,然后动画过渡到下一组,但我还没有找到一种优雅的方式来做到这一点。
我创建了一个显示效果的小提琴(http://jsfiddle.net/DPnXB/),为方便起见,我还将在此处添加 Javascript 和 html。
function init(){
$(".panel.first").addClass("focus");
$("input:radio").on("click", animate);
}
init();
function animate(){
var currentPanel, nextPanel;
currentPanel = $(this).parents(".panel");
nextPanel = $(".panel").not(".focus").first();
nextPanel.css({opacity: 0}).addClass("focus");
currentPanel.removeClass("focus");
nextPanel.animate({opacity: 1}, 300);
}
<div class="panel first">
First panel
<label><input type="radio" name="radioGroup1"/> option 1 </label>
<label><input type="radio" name="radioGroup1"/> option 2 </label>
<label><input type="radio" name="radioGroup1"/> option 3 </label>
</div>
<div class="panel last">
Last panel
<label><input type="radio" name="radioGroup2"/> option 1 </label>
<label><input type="radio" name="radioGroup2"/> option 2 </label>
<label><input type="radio" name="radioGroup2"/> option 3 </label>
<label><input type="radio" name="radioGroup2"/> option 4 </label>
</div>