如何使用 jQuery 恢复动画?

发布于 2024-12-10 06:01:25 字数 992 浏览 0 评论 0原文

我想知道如何使用 jQuery 恢复此动画,请查看此页面:

http://bksn.mx/TAC/

正确的方法是,当您单击“Equipo”时,它会显示平滑的动画,再次单击它,它会很好地恢复动画。

错误的方法是当您单击“Arquitectura”时,它会开始平滑的动画,然后再次单击此...它看起来很混乱并且不会恢复动画...

我尝试制作.toggle(); 方法,但没有工作 3 次,我不知道为什么......

有一个 Arquitectura 脚本:

$('h2#arq').click(function() {
  $('section#pryctA4, section#ext').animate({
    opacity: 'toggle',
    height: 'toggle',
    margin: 20
    }, {
    duration: 750,
    specialEasing: {
      width: 'linear',
      height: 'easeInOutQuad'},
    }
  );
});

另一个 “Equipo 脚本“如果您愿意:

$('h2#equipo').click(function() {
  $('section#team').animate({
    opacity: 'toggle',
    height: 'toggle'
    }, {
    duration: 750,
    specialEasing: {
      width: 'linear',
      height: 'easeInOutQuad'},
    }
  );
});

提前致谢!

I'm wondering how to revert this animation using jQuery, look this page:

http://bksn.mx/TAC/

The correct way is when you click "Equipo", it shows smooth animation and click this again, it reverts animation very well.

The incorrect way is when you click "Arquitectura", it starts smooth animation, and click this again... it looks like messed up and doesn't revert animation...

I tried to make .toggle(); methods but it didn't work 3 times, i had no idea why...

There is a script of Arquitectura:

$('h2#arq').click(function() {
  $('section#pryctA4, section#ext').animate({
    opacity: 'toggle',
    height: 'toggle',
    margin: 20
    }, {
    duration: 750,
    specialEasing: {
      width: 'linear',
      height: 'easeInOutQuad'},
    }
  );
});

Another script of "Equipo" if you want:

$('h2#equipo').click(function() {
  $('section#team').animate({
    opacity: 'toggle',
    height: 'toggle'
    }, {
    duration: 750,
    specialEasing: {
      width: 'linear',
      height: 'easeInOutQuad'},
    }
  );
});

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

日裸衫吸 2024-12-17 06:01:25

您的 margin 属性没有切换(在动画中 in 两次,都会产生不稳定的效果):

$('h2#arq').click(function() {
  $('section#pryctA4, section#ext').animate({
    opacity: 'toggle',
    height: 'toggle',
    margin: 20},
{
    duration: 750,
    specialEasing: {
      width: 'linear',
      height: 'easeInOutQuad'},
    }
  );
});

修复它的肮脏方法是包含一个内联 if< /code>:

$('h2#arq').click(function() {
  $('section#pryctA4, section#ext').animate({
    opacity: 'toggle',
    height: 'toggle',
    margin: ($(this).css('margin') == 20) : 0 ? 20},
{
    duration: 750,
    specialEasing: {
      width: 'linear',
      height: 'easeInOutQuad'},
    }
  );
});

不确定是否存在另一个更优雅的解决方案。

Your margin property isn't toggling (in animates in both times, giving the jerky effect):

$('h2#arq').click(function() {
  $('section#pryctA4, section#ext').animate({
    opacity: 'toggle',
    height: 'toggle',
    margin: 20},
{
    duration: 750,
    specialEasing: {
      width: 'linear',
      height: 'easeInOutQuad'},
    }
  );
});

The dirty way to fix it is to include an inline if:

$('h2#arq').click(function() {
  $('section#pryctA4, section#ext').animate({
    opacity: 'toggle',
    height: 'toggle',
    margin: ($(this).css('margin') == 20) : 0 ? 20},
{
    duration: 750,
    specialEasing: {
      width: 'linear',
      height: 'easeInOutQuad'},
    }
  );
});

Not sure if another more elegant solution exists.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文