Jquery淡出手风琴菜单上的文字

时间:2013-05-16 22:59:20

标签: jquery accordion fadein fadeout

寻找有关如何在手风琴菜单上淡入文字的一些帮助。更具体地说,当单击菜单项时,我希望下面显示的文本淡入,并在该菜单关闭时淡出。我是Jquery的新手,虽然我理解了基本概念,但我无法使用当前的代码。

示例:http://codepen.io/Sektion66/pen/ouclt

任何帮助将不胜感激!感谢。

3 个答案:

答案 0 :(得分:0)

$allCells.slide(Up|Down)替换为$allCells.fade(In|Out)。现在你有其他问题,因为你使用大型选择器。尽量避免这种情况。

答案 1 :(得分:0)

您需要挂钩控件中的activate(event, ui) event

创建一个像下面的代码示例一样的处理程序,看看你是否可以将整个面板淡入淡出。这可能会给你带来奇怪的结果,因为我没有测试过这个,只是建议从哪里开始。

$( ".selector" ).accordion({
  activate: function( event, ui ) { ui.newPanel.fadeIn(); }
});

如果它与您的布局或渲染混淆,那么您需要获取newPanel对象内的文本元素的引用并明确地淡化它们。

答案 2 :(得分:0)

我已经设法用CSS和Jquery的组合修复了我的原始问题。

问题是这个......我必须强制可见性,同时为手风琴设置动画,因为图形元素悬挂在内容区域之外。在这样做时,主要文本元素也将在动画期间显示在该区域之外。造成一种草率的外观。

修复...使用CSS我首先将主文本区域的主要不透明度设置为0,然后当单击一个菜单项时,它会添加一个将在文本中淡入淡出的CSS类,并且在单击时会淡出进行。

所以它是最基本的形式:

<强> CSS

.initialState {
  opacity: 0;
  transition: opacity 0.15s ease-in-out;
}

.fadeIn { 
  opacity: 1; 
  transition: opacity 1s ease-in-out;
}

<强> JS

.slideDown().addClass("fadeIn");
.slideUp().removeClass("fadeIn");

示例:http://codepen.io/Sektion66/pen/ouclt

感谢大家的帮助。希望这个手风琴菜单对其他人来说很方便,所以坚持下去!