通过 jQuery 横向动画

Posted

技术标签:

【中文标题】通过 jQuery 横向动画【英文标题】:Animate sideways via jQuery 【发布时间】:2012-12-10 06:18:29 【问题描述】:

我有一些 <div> 元素和一个菜单,该菜单应该通过自定义动画在点击时“调用”这些不同的 <div>s。

这些是菜单:

正常 远程 工具 注册 登录 捐赠 联系方式 使用条款

现在我需要根据我点击的菜单项来控制和显示不同的 div。

我在两种情况下需要帮助:

    创建动画(参见下面的 jsfiddle) 无需大量代码重写即可高效处理 div 之间的转换。

场合 1:

当我点击一个菜单(例如Remote)时,我希望另一个可见菜单将自己移动到其完整的右侧 侧并消失(我使用过@ 987654324@ 在主 div 上),然后从 left 侧进入正确的 div(remote-page div)。

所以基本上,我想让 slideDown 和 slideUp 水平。

这是我目前得到的:http://jsfiddle.net/Dugi/UtH4m/8/

这是一个很好的例子,可以展示我已经为我的网站在本地获得的内容。当单击菜单按钮时,我未能从 LEFT 一侧进入正确的 div,我只能做到这一点,以便我可以 HIDE 站在方式。

最后一个问题:那么在另一个可见的 div 向右移动之后,如何使用 .animate() 使正确的 div 从左侧进入?

场合 2:

从上面的 jsfiddle 可以看出,我必须遍历每个现有的 <div> 并隐藏它们:

$('#remote').click(function()

      $('#normal-page').animate(marginLeft: '100%', 'fast'); // here
      $('#tools-page').animate(marginLeft: '100%', 'fast');  // here   
);

最后一个问题:有没有办法自动化这个过程并隐藏所有可见的 div 并在单击菜单按钮时显示正确的 div?

这就是我想知道的全部。

谢谢

【问题讨论】:

【参考方案1】:

您可以使用动画函数的complete 参数来实现。如果您不介意的话,我冒昧地更改了一些 html 和 CSS。 http://jsfiddle.net/UtH4m/9/

最终版本:http://jsfiddle.net/UtH4m/13/

【讨论】:

由于某种原因,我似乎无法让它在我的网站上运行,这与示例不同,我认为我使它们足够相似,但似乎我没有。我可以给你看看我网站的 HTML 吗? 确保只提供相关部分 =) 选择器必须更改为 "#inner > div" 以仅包含 #inner div 的第一级子项。 (jsfiddle.net/UtH4m/11) 现在可以了,谢谢。但正如我担心的那样,jQuery 中总是有一个副作用:从您提供的 jsfiddle 中,单击 Remote,然后单击 Normal,您可以看到 data-page="normal"不会向右滑动,它只是消失在原地。有任何解决这个问题的方法吗?我的网站上也发生了同样的事情,就像在小提琴中一样。 是的,只是一个小修复:当前页面应该只有在即将滑入时才可见。jsfiddle.net/UtH4m/12【参考方案2】:

我希望这是你想要的。我稍微改变了你的标记。我为所有移动的页面添加了#container。这就是它的样子:jsFiddle

【讨论】:

以上是关于通过 jQuery 横向动画的主要内容,如果未能解决你的问题,请参考以下文章

禁用从纵向到横向的默认动画

03-jQuery动画效果

jQuery-4.动画篇---动画基础隐藏和显示

应用动画从纵向到横向

无法通过单击使我的 jquery 动画回来

Jquery动画效果