javascript - Reverting jquery animations back to original css states - Stack Overflow

I've got a page of elements, each of which, depending on user interaction, may be animated away by

I've got a page of elements, each of which, depending on user interaction, may be animated away by the given function:

function slideAndFade(id){
    $(id).animate({opacity: 'toggle', width: 'toggle'}, 500);
}

I want to create a reset function that brings all the elements back onto the page. Running all the elements through the toggle function above won't work, because currently hidden elements will be shown, and currently shown elements will be hidden.

Essentially looking for way to revert all elements to their original css states, regardless of whether they've been acted upon by jquery animation.

Thanks-

Edit:

Just realized all I need to do is replace 'toggle' with 'show':

function revertSlideAndFade(id){
    $(id).animate({opacity: 'show', width: 'show'}, 500);
}

Calling this on any element will ensure the element is reverted back to visible in this case. However, see Nick's answer below for a more generally applicable approach.

I've got a page of elements, each of which, depending on user interaction, may be animated away by the given function:

function slideAndFade(id){
    $(id).animate({opacity: 'toggle', width: 'toggle'}, 500);
}

I want to create a reset function that brings all the elements back onto the page. Running all the elements through the toggle function above won't work, because currently hidden elements will be shown, and currently shown elements will be hidden.

Essentially looking for way to revert all elements to their original css states, regardless of whether they've been acted upon by jquery animation.

Thanks-

Edit:

Just realized all I need to do is replace 'toggle' with 'show':

function revertSlideAndFade(id){
    $(id).animate({opacity: 'show', width: 'show'}, 500);
}

Calling this on any element will ensure the element is reverted back to visible in this case. However, see Nick's answer below for a more generally applicable approach.

Share Improve this question edited May 23, 2017 at 12:24 CommunityBot 11 silver badge asked Sep 1, 2010 at 15:34 YarinYarin 184k155 gold badges410 silver badges524 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

If you could identify all the elements that might be passed into this function, say they had a class .toggleElem you could use that to store the values on page load and restore then when needed, like this:

$(function() {
  $(".toggleElem").each(function() {
    var $this = $(this);
    $.data(this, 'css', { opacity: $this.css('opacity'), 
                          width: $this.css('width') });
  });
});

Then you could restore them at any point later:

function restore() {
  $(".toggleElem").each(function() {
    var orig = $.data(this, 'css');
    $(this).animate({opacity: orig.opacity, width: orig.width}, 500);
  });
}

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742246824a4408396.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信