gpt4 book ai didi

javascript - 存储动画之前的宽度值记录动画之后的值

转载 作者:行者123 更新时间:2023-11-28 02:44:28 25 4
gpt4 key购买 nike

现在有点晚了,如果我犯了一个愚蠢的错误,请原谅。由于某种原因,以下代码:

$(".myClass").each(function(){
widths[$(this).attr("id")] = $(this).width();
if ($(this).attr("id") != $(clickedExpand).attr("id"))
{
$(this).animate({
width: '10px'
});
}

});

数组初始化为

var widths = new Array();

在代码的前面。由于某种原因,尽管我在动画开始之前记录了宽度,但我还是在数组中获取了动画后值。看起来动画结束了,然后值就被记录下来了。我尝试将其从函数中取出并将其包装在另一个 .each 中,但我得到了相同的结果。

任何帮助将不胜感激!

整个代码:

var slateWidths = {};
$(".slateExpand").click(function(){
var clickedExpand = $(this).closest(".slate");

$(".slate").each(function(){
slateWidths[$(this).attr("id")] = $(this).outerWidth();
if ($(this).attr("id") != $(clickedExpand).attr("id"))
{
$(this).animate({
width: '10px'
});
$(this).find($('.slateExpand')).hide();
}

});

$(this).text("Restore");
$(this).removeClass("slateExpand").addClass("slateRestore");
$(".slateRestore").on("click",function(){

$(".slate").each(function()
{
alert(slateWidths[$(this).attr("id")]);
//var width = slateWidths[$(this).attr("id")];
$(this).animate({
width: slateWidths[$(this).attr("id")]
});
});
});
});

最佳答案

// first of all save all widths for all .slate
var slateWidths = {};
$(".slate").each(function(){
slateWidths[$(this).attr("id")] = $(this).width();
});

$(".slateExpand").click(function(){
var $slate = $(this).closest('slate');

if($slate.hasClass('hidden')) {

$slate.animate({
width: slateWidths[$slate.attr('id')]
});
$(this).text("hide");
$slate.removeClass("hidden")
}else{

$slate.animate({
width: '10px'
});
$(this).text("Restore");
$slate.addClass("hidden")
}
});

关于javascript - 存储动画之前的宽度值记录动画之后的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12131667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com