1

我试图在单击按钮时出现对表单的添加。我有两个问题:为什么新按钮在开始时没有完全隐藏?我试图给它们 0 的高度和填充等......为什么显示新按钮动画比动画的其余部分花费更长的时间?

一个演示http://jsfiddle.net/mNRem/

这是我的 jQuery 代码:

var duration = 3000;
var showWidth = "150px";
var formHidden = true;
var showHeight = $("#cancel-button").outerHeight(true)+"px";
var buttonPadding = $('#cancel-button').css("padding");
var buttonBorder = $('#cancel-button').css("border-width");
$('#new-name').width(0);
$('.hidden-form').height(0);
$('.buttons').css({padding: 0, "border-width": 0});
$('#change-form-button').click(function() {
  formHidden = !formHidden;
  var labelWidth  = formHidden? "0" : showWidth;
  var buttonWidth = formHidden? showWidth : "0";
  $('#new-name').animate({width: labelWidth}, duration);
  $('#change-form-button').animate({width: buttonWidth, padding: "0", "border-width": "0"}, duration);
  $('.hidden-form').animate({height: showHeight}, duration);
  $('.buttons').animate({padding: buttonPadding, "border-width": buttonBorder}, duration);
  return false;
});
4

1 回答 1

1

对于隐藏按钮,请使用 css 道具:display: none;

或者更适合你的 jQuery 语句 $('.buttons').css({ display: 'none' });

为了获得更好的动画效果,请尝试使用.hide( ).show()函数:

$('.buttons').hide("fast");

然后点击

$('.buttons').show();

看这里:JsFiddle 上的示例

于 2013-09-28T20:34:27.687 回答